日期:2014-05-16  浏览次数:20901 次

求助:linux下自己写的程序Ctrl+C无法停止的问题
自己写了一个类连接数据库的。然后在另外一个文件里使用这个类。
需要用到死循环,如果不使用这个类,循环一切正常,按ctrl   +   C可以终止程序
但是一旦用了这个类,程序运行仍然一切正常,只是ctrl   +   C就完全没有了反应。
只能在另外一个终端里kill才行。
(这个类已经单独做过测试没有问题,只是不明白为什么放到整个系统里就出这样的问题了……)
希望高手能够帮忙!

------解决方案--------------------
应该是连接数据库时屏蔽或则阻塞了信号吧
------解决方案--------------------
这个是oracle的问题,我用gcc写pro*c的程序,操作817的oracle,也是类似的问题
ctrl-c并不是没有作用,ctrl-c实际上对数据库的操作是起作用的
比如正在select count(*) from b 的时候你按下ctrl-c
这条语句实际上就中断了,返回结果是0
我有个程序也是无限循环,只好在程序中判断查询出错的时候退出程序
多按几次ctrl-c就可以退出了

------解决方案--------------------
ctrl+c信号被进程捕获了,按下ctro+|试试,或在另一个终端给这个进程发SIGINT信号看看。