Unix / Linux:SIGCONT / SIGTSTP的处理程序

时间:2011-06-07 08:43:20

标签: unix signals signal-handling

我目前正在使用信号编写程序,我遇到了麻烦:

如何在不发送SIGSTOP / SIGCONT的情况下将执行程序的状态更改为已停止/正在运行?

我明白,我需要使用:

 void add_to_runqueue (struct task_struct * p)

void del_from_runqueue (struct task_struct * p)

但如何获取当前正在运行的进程的结构task_struct?

另外:如果这就是我需要做的全部(调用这两个函数)。

提前致谢!

1 个答案:

答案 0 :(得分:1)

这些函数是内核函数,即OS内部函数。在编写程序时,您需要进行相应的系统调用,例如kill

如果您有程序进程ID(即其编号),则可以使用

kill(pid, SIGSTOP);

kill(pid, SIGCONT);

除非您知道自己在做什么,否则不应使用SIGTSTP