1
有關的代碼是非常巨大的,因此我很抱歉,我不能在這裏發佈它。問題是: - 我寫了一個小程序如下:停止自己的過程
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#include<signal.h>
int main()
{
printf("\n Process id",getpid());
fflush(stdout);
if(kill(getpid(),SIGSTOP)!=0)
printf("\nError");
}
運行後我得到以下O/P:
進程ID 2664
[1] +停止./test_SIGSTOP
[目錄路徑] $
這正是預期的。但在我的實際程序中,我說的內容非常龐大...控制權僅僅來自kill函數之上(我知道它是因爲我有打印語句並刷新它們)並掛起而沒有自動停止進程並出現命令提示符。 對於指針來說可能會很不友善。 謝謝
介意至少在函數中調用'kill',只是爲了某些上下文? – ladaghini 2011-05-24 05:17:16
這個較大的程序是否有可能捕獲SIGSTOP的任何類型的信號處理機制? – 2011-05-24 06:14:40
我可以假設你的進程做了fork,並且父進程或者子進程仍在運行。而且,我想指出SIGSTOP不能被捕獲。 – tvn 2011-05-24 07:23:41