2013-01-07 32 views

回答

6

當程序正在運行時按下Ctrl-C,下面會發生什麼情況是您的進程接收到一個名爲SIGINT的信號,當進程接收到此信號時的默認操作是自行終止。
所以,你的目標應該是修改此行爲:

signal(SIGINT, handler_function);//handler_function is a void returning function that takes one int paramter, you can do nothing there if you just want to prevent your process from terminating. 



使用功能signal趕上發送到你的過程中,信號時,CTRL-C

你應該像這樣走 PS以下是man page的詳細信息:D
PPS如果您對家用電器的信號不熟悉,請參閱this wikipedia page,如果您發現有些問題,請告訴我們。

2

的我該怎麼辦的任何想法,

使用SIG_IGN處置忽略SIGINT或趕上它在一個什麼都不做處理。在一些實現中,甚至有一個sigignore函數。

不管怎麼說,你應該罰款:

signal(SIGINT, SIG_IGN); 

SIG_IGN在C11-7.14被sppecified所以它的便攜,因爲它得到。