Luc*_*cas 5 c command-line signals
kill -SIGCONT pid从另一个终端运行后,以下过程不会继续。
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("paused\n");
pause();
printf("continue\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望程序在发送信号并打印“ continue”之后继续执行。为什么这不按预期工作?
pause() 被记录到
使调用进程(或线程)进入休眠状态,直到传递了终止该进程或导致调用信号捕获功能的信号为止。
但是SIGCONT仅继续执行先前由SIGSTOP或SIGTSTP停止的进程。
因此,您可能想尝试:
kill(getpid(), SIGSTOP);
Run Code Online (Sandbox Code Playgroud)
代替你的 pause()
另外,您可能要看一下sigsuspend()。
| 归档时间: |
|
| 查看次数: |
10924 次 |
| 最近记录: |