我目前正在使用信号编写程序,我遇到了麻烦:
如何在不发送SIGSTOP
/ SIGCONT
的情况下将执行程序的状态更改为已停止/正在运行?
我明白,我需要使用:
void add_to_runqueue (struct task_struct * p)
和
void del_from_runqueue (struct task_struct * p)
但如何获取当前正在运行的进程的结构task_struct?
另外:如果这就是我需要做的全部(调用这两个函数)。
提前致谢!
答案 0 :(得分:1)
这些函数是内核函数,即OS内部函数。在编写程序时,您需要进行相应的系统调用,例如kill
。
如果您有程序进程ID(即其编号),则可以使用
kill(pid, SIGSTOP);
和
kill(pid, SIGCONT);
除非您知道自己在做什么,否则不应使用SIGTSTP
。