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