SIGCONT能唤醒睡眠过程吗? #包括 #包括 #包括 #包括 无效信号处理器(int signo) { 返回; } int main() { pid_t pid; pid=getpid(); 信号(SIGCONT,信号处理器); printf(“%d\n”,pid); 睡眠(100); printf(“你好”); 返回0; }
当您执行此代码并将SIGCONT信号传递给进程时,它将在睡眠状态之外输出“Hello”并终止 另一方面,如果删除了上述信号处理程序并执行了代码,则即使将SIGCONT交付给进程,也不会唤醒它 有什么区别SIGCONT能唤醒睡眠过程吗? #包括 #包括 #包括 #包括 无效信号处理器(int signo) { 返回; } int main() { pid_t pid; pid=getpid(); 信号(SIGCONT,信号处理器); printf(“%d\n”,pid); 睡眠(100); printf(“你好”); 返回0; },c,linux,process,operating-system,C,Linux,Process,Operating System,当您执行此代码并将SIGCONT信号传递给进程时,它将在睡眠状态之外输出“Hello”并终止 另一方面,如果删除了上述信号处理程序并执行了代码,则即使将SIGCONT交付给进程,也不会唤醒它 有什么区别 我让进程返回其pid,以便于手动交付SIGCONT。当处理程序就位时,睡眠失败,并将errno设置为EINTR(即,它被中断)。当处理器未就位时,信号不会中断睡眠。如果进程因SIGSTOP而处于“休眠”状态,SIGCONT会将其唤醒(但不会中断sleep调用)。这里“sleep”一词有两种不同的
我让进程返回其pid,以便于手动交付SIGCONT。当处理程序就位时,睡眠失败,并将errno设置为EINTR(即,它被中断)。当处理器未就位时,信号不会中断睡眠。如果进程因SIGSTOP而处于“休眠”状态,SIGCONT会将其唤醒(但不会中断
sleep
调用)。这里“sleep”一词有两种不同的用法。当处理程序就位时,sleep失败并将errno设置为EINTR(即,它被中断)。当处理器未就位时,信号不会中断睡眠。如果进程因SIGSTOP而处于“休眠”状态,SIGCONT会将其唤醒(但不会中断sleep
调用)。这里“睡眠”一词有两种不同的用法。
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <stdio.h>
void signal_handler(int signo)
{
return;
}
int main()
{
pid_t pid;
pid = getpid();
signal(SIGCONT, signal_handler);
printf("%d\n", pid);
sleep(100);
printf("hello");
return 0;
}