社区
Linux/Unix社区
帖子详情
如何通过ctrl+c终止自己的运行程序?
mingjava
2003-06-08 10:46:57
编写了一个小shell,想通过用户键入ctrl+C终止该shell程序,该怎么做?谢谢
...全文
1007
9
打赏
收藏
如何通过ctrl+c终止自己的运行程序?
编写了一个小shell,想通过用户键入ctrl+C终止该shell程序,该怎么做?谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Justin
2003-06-09
打赏
举报
回复
哦,上面是内核态程序,用户程序是这样的:
#include <signal.h>
static void catch_sigint( int );
int main( int argc, char** argv ) {
struct sigaction sa_old;
struct sigaction sa_new;
// set up signal handling
sa_new.sa_handler = catch_sigint;
sigemptyset(&sa_new.sa_mask);
sa_new.sa_flags = 0;
sigaction(SIGINT, &sa_new, &sa_old );
/* continue */
while(1) {
/* process loop that goes on forever */
}
}
static void catch_sigint( int signo ) {
printf("Catch Sigint\n");
exit(1);
}
天知道
2003-06-08
打赏
举报
回复
kill -9 Program
Justin
2003-06-08
打赏
举报
回复
if (signal_pending(current))
return -ERESTARTSYS;
mingjava
2003-06-08
打赏
举报
回复
kill函数?kill是函数吗?是系统命令把。我自己写了一个设shell,模仿c shell写的
也具有一部分功能了 后台执行 输出输入重定向等,现在我想让用户键入ctrl+c的时候终止
shell程序 我现在ctrl+c没有作用
林雨亭
2003-06-08
打赏
举报
回复
ctrl+c是系统支持的功能,所以你的程序没有必要实现这种功能。
如果想用程序关掉别的程序,可以使用kill函数,向对应的进程发送终止信号。
signal不是发送信号的函数。
CoolQ
2003-06-08
打赏
举报
回复
signal()
Joran
2003-06-08
打赏
举报
回复
我知道用C可以发SIGINT信号。
lysamper
2003-06-08
打赏
举报
回复
那你试一试ctrl+z啊
mingjava
2003-06-08
打赏
举报
回复
我的意思是在程序中实现,kill是命令不是函数吧
C语言如何正确的
终止
正在
运行
的子线程
当用户输入
Ctrl
+C的情形下,默认的信号处理会把
程序
退出,这时有可能会有很多线程的资源没有得到很好的释放,造成了内存泄露等等诸如此类的问题,本文就是围绕着这么一个使用场景讨论如何正确的
终止
正在
运行
的子线程...
C语言调试器是如何工作的?
当你在
程序
运行
的时候用
Ctrl
+ C,
程序
的
运行
能够
终止
,而GDB能展示它的当前地址、堆栈跟踪信息之类的内容。 但是它是怎么办到的呢? 但是它们怎么不工作呢? 开始,让我们先研究它怎样才会不工作。它不能...
Python 3中如何捕获
Ctrl
+C
终止
信号
当你
运行
这段代码时,你可以按下
Ctrl
+C键来触发
终止
信号,然后你会看到
程序
打印出"
程序
终止
"的消息,并执行你在。在这个例子中,我们打印了一条消息,并可以在函数中执行其他清理操作或特定逻辑。最后,我们在主
程序
...
Python 中用
Ctrl
+C
终止
多线程
程序
的问题解决
Python 中用
Ctrl
+C
终止
多线程
程序
的问题解决 花了一天时间用python为服务写了个压力测试。很简单,多线程向服务器发请求。但写完之后发现如果中途想停下来,按
Ctrl
+C达不到效果,自然想到要用信号处理函数...
ctrl
+c,
ctrl
+d,
ctrl
+z在linux
程序
中意义和区别
ctrl
+c和
ctrl
+z都是中断命令,但是他们的作用却不一样.
ctrl
+c是强制中断
程序
的执行,,进程已经
终止
。 ct
ctrl
+c是强制中断
程序
的执行,,进程已经
终止
。
ctrl
+z的是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动...
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章