首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

命令行程序,Ctrl+C 退不出来。解决方案

2013-02-24 
命令行程序,Ctrl+C 退不出来。。。怎么让它退出来呢?我是个服务器程序。。。[解决办法]ps auxkill xxxx[解决办法

命令行程序,Ctrl+C 退不出来。。。
怎么让它退出来呢?

我是个服务器程序。。。
[解决办法]
ps aux
kill xxxx
[解决办法]
那就按回车吧! 

你在程序中加入 exit(0);

在编译器里面是不退出、
但是你单独运行的时候,就会直接退出!
[解决办法]

引用:
引用:ps aux
kill xxxx

你倒没让我重启机器呢,拆电池 。。。

当然是问程序中怎么捕获 Ctrl+C , 然后正常退出。

哈哈。不好意思,如果还不行,我就要说重启了。


event里面有个Modifyer...
来判断是不是ctrl 啊。alt这些被按下了。。

可以重写QApplication::Notify()
....
判断ctrl+c是否被按下。。然后做退出程序要做的事情。

http://zhidao.baidu.com/question/452172951.html
[解决办法]
引用:
不太好吧。。。


哪里不太好?

[解决办法]
引用:
引用:引用:ps aux
kill xxxx

你倒没让我重启机器呢,拆电池 。。。

当然是问程序中怎么捕获 Ctrl+C , 然后正常退出。
哈哈。不好意思,如果还不行,我就要说重启了。


event里面有个Modifyer...
来判断是不是ctrl 啊。alt这些被按下了。……



http://www.cnblogs.com/codingmylife/archive/2010/08/30/1812739.html。。这里。
[解决办法]
Ctrl + Z
[解决办法]
实现signal函数,捕获SIGINT信号,试试
[解决办法]
引用:
引用:实现signal函数,捕获SIGINT信号,试试

有代码吗?
我是windows下,不排除需要移植到mac下

这个很简单啊 上网找找好了,这个用过,但是代码这不到了 
[解决办法]
windows按CTRL+break
[解决办法]
ctrl+c 或 ctrl + z 或ctrl +D 在不同的平台下会触发不同的signal 
在linux下 ctrl + c 是SIGINT
先安装一个singal处理函数
    if ( SIG_ERR == signal (SIGINT,handle_Ctrl_C_signal) )
    {
        fprintf(stderr,"install signal handler failed\n");
        return -1;
    }

实现
void handle_Ctrl_C_signal(int signal)
{
    fprintf(stderr,"handle_Ctrl_C_signal signal %d recevied \n",signal);
}

如果进程无法退出 你可以看根据进程ID杀死进程或直接pkill -9 进程名

热点排行