一般的,父进程在生成子进程之后会有两种情况,一种是父进程继续去做别的事情,另一种是父进程啥都不做,一直在wait子进程退出
.SIGCHLD信号就是为这第一种情况准备的,它让父进程去做别的事情,而只要父进程注册了处理该信号的函数,在子进程退出时就会调用该函数,在该函数中又可以调用wait得到终止的子进程的状态。处理信号的函数执行完后,再继续做父进程的事情.
也就是说,如果父进程在fork之后调用wait,就会阻塞,直到有一个子进程退出。
如果父进程在fork之前先signal(SIGCLD, sig_cld),即注册了SIGCLD的信号处理函数。然后做自己的事情。当子进程退出时,会给父进程发送一个SIGCLD信号。然后sig_cld函数就会执行。可以在sig_cld函数中调用wait获得子进程退出时的状态,并且此时wait不会阻塞。 当sig_cld函数执行完后,父进程又继续做自己的事情。
http://www.cppblog.com/baby-fly/archive/2011/0317/142052.html
------------------------今日单词
refute 反驳
snippet 片段
widget 小工具
Reentrant 折返
trivial 琐碎
daemon processes 守护进程
asynchronous notification 异步通知
suspend 暂停
terminate 终止
分享到:
相关推荐
10.7 SIGCLD语义 10.8 可靠信号术语和语义 10.9 kill和raise函数 10.10 alarm和pause函数 10.11 信号集 10.12 sigprocmask函数 10.13 sigpending函数 10.14 sigaction函数 10.15 sigsetjmp...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 10.15 ...
10.7 SIGCLD语义 10.8 可靠信号术语和语义 10.9 kill 和raise函数 10.10 alarm和 pause函数 10.11 信号集 10.12 sigprocmask 函数 10.13 sigpending函数 10.14 sigaction函数 10.15 sigsetjmp 和siglongjmp函数 ...
10.7 SIGCLD语义 10.8 可靠信号术语和语义 10.9 kill 和raise函数 10.10 alarm和 pause函数 10.11 信号集 10.12 sigprocmask 函数 10.13 sigpending函数 10.14 sigaction函数 10.15 sigsetjmp 和siglongjmp函数 ...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 10.15 ...
10.7 SIGCLD语义 248 10.8 可靠信号术语和语义 250 10.9 kill和raise函数 251 10.10 alarm和pause函数 252 10.11 信号集 256 10.12 sigprocmask函数 258 10.13 sigpending函数 259 10.14 sigaction...
246 10.7 SIGCLD语义 248 10.8 可靠信号术语和语义 250 10.9 kill和raise函数 251 10.10 alarm和pause函数 252 10.11 信号集 256 10.12 sigprocmask函数 258 10.13 sigpending函数 259 10.14 ...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 10.15 ...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 ...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 10.15 ...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 10.15 ...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 10.15 ...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 10.15 ...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 10.15 ...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 10.15 ...
10.7 SIGCLD语义 211 10.8 可靠信号术语和语义 213 10.9 kill和raise函数 213 10.10 alarm和pause函数 214 10.11 信号集 219 10.12 sigprocmask 函数 220 10.13 sigpending函数 222 10.14 sigaction函数 223 10.15 ...