附加功能
在这节,我们描述一些依赖于具体实现的附加信号功能。 信号名 一些系统提供了数组 extern char *sys_siglist[]; 数组的索引是信号号,通过…
在这节,我们描述一些依赖于具体实现的附加信号功能。 信号名 一些系统提供了数组 extern char *sys_siglist[]; 数组的索引是信号号,通过…
POSIX.1考虑使用六种任务控制信号: SIGCHLD 子进程已经停止或终止。 SIGCONT 如果进程已经停止那么继续进程。 SIGSTOP 停止信号(不能…
我们已经在例子中使用了很多次sleep函数,并在Figures10.7和10.8中显示了两个缺陷。 #include <unistd.h> unsi…
在APUE8.13节,我们显示了一个system函数的实现。那个版本中并不处理任何信号。POSIX.1要求system忽略SIGINT和SIGQUIT并且阻塞S…
我们注意到之前使用的abort函数会导至程序非正常终止。 #include <stdlib.h> void abort(void); This fu…
我们已经见过如何对进程的信号掩码进行阻塞和解锁。我们可以通过这种技术对不想被信号中断的代码段进行保护。如果我们想解锁一个信号然后pause,等待之前阻塞的信号再…
在APUE 7.10节,我们描述过setjmp和longjmp函数,它曾被用于非本地分支跳转。longjmp函数常被信号处理函数调用,用于返回程序的主循环,而不…
sigaction函数允许我们检查或修改(或两者)特定信号的动作。这个函数在早期的UNIX版本中代替了signal函数。在本节的最后,我们提供了一个使用siga…
编译程序时加了-std=c99后,提示sigset_t未定义。 $ gcc -g -std=c99 test.c -o test test.c: In func…
sigpending函数返回一个被当前进程阻塞的信号集,这个信号集通过set参数返回。 #include <signal.h> int sigpen…