社区
Linux/Unix社区
帖子详情
如何通过ctrl+c终止自己的运行程序?
mingjava
2003-06-08 10:46:57
编写了一个小shell,想通过用户键入ctrl+C终止该shell程序,该怎么做?谢谢
...全文
914
9
打赏
收藏
如何通过ctrl+c终止自己的运行程序?
编写了一个小shell,想通过用户键入ctrl+C终止该shell程序,该怎么做?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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的情形下,默认的信号处理会把
程序
退出,这时有可能会有很多线程的资源没有得到很好的释放,造成了内存泄露等等诸如此类的问题,本文就是围绕着这么一个使用场景讨论如何正确的
终止
正在
运行
的子线程。其实本文更确切的说是解决如何从待
终止
线程外部安全的
终止
正在
运行
的线程 首先我们来看一下,让当前正在
运行
的子线程停止的所有方法 1.任何一个线程调用exit 2.pthread_exit 3.pthread_kill 4.pthread_cancel 下面我们一一分析各种
终止
正在
运行
的
程序
的方法 任何一个线程调用exit 任何一个线程只要调用了exit都会
C语言调试器是如何工作的?
当你用 GDB 的时候,可以看到它完全控制了应用
程序
进程。当你在
程序
运行
的时候用
Ctrl
+ C,
程序
的
运行
能够
终止
,而GDB能展示它的当前地址、堆栈跟踪信息之类的内容。 但是它是怎么办到的呢? 但是它们怎么不工作呢? 开始,让我们先研究它怎样才会不工作。它不能通过阅读和分析
程序
的二进制信息来模拟
程序
的
运行
。它其实能做,而那应该能起作用(Valgrind 内存调试器是这样工作的),但是这样的话会很慢。Valgrind会让
程序
慢1000倍,但是GDB不会。它的工作机制与Qemu虚拟机一样。 所以到底是怎么回事?黑魔法?……不,如果那样的话太简单了。 另一种猜想?…
Python 网络爬虫基础
虽说不会敲代码的 Python数据分析师 不是好的数据分析师,但你不是正儿八经的开发人员,代码敲的那么溜有什么用?学点数据爬虫基础能让繁琐的数据CV工作(
Ctrl
+C,
Ctrl
+V)成为自动化就足够了。 1.掌握爬虫必会的Python操作和知识2.最常见的Mysql和Mongodb数据库操作内容3.爬虫的知识整体介绍4.用最简单的方式教你如何快速掌握爬虫 5.爬虫的应用领域
Python 中用
Ctrl
+C
终止
多线程
程序
的问题解决
Python 中用
Ctrl
+C
终止
多线程
程序
的问题解决 花了一天时间用python为服务写了个压力测试。很简单,多线程向服务器发请求。但写完之后发现如果中途想停下来,按
Ctrl
+C达不到效果,自然想到要用信号处理函数捕捉信号,使线程都停下来,问题解决的方法请往下看: #!/bin/env python # -*- coding: utf-8 -*- #filena
ctrl
+c,
ctrl
+d,
ctrl
+z在linux
程序
中意义和区别
ctrl
+c和
ctrl
+z都是中断命令,但是他们的作用却不一样.
ctrl
+c是强制中断
程序
的执行,,进程已经
终止
。 ct
ctrl
+c,
ctrl
+d,
ctrl
+z在linux
程序
中意义和区别
ctrl
+c和
ctrl
+z都是中断命令,但是他们的作用却不一样.
ctrl
+c是强制中断
程序
的执行,,进程已经
终止
。
ctrl
+z的是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断
Linux/Unix社区
23,116
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章