标签:style blog http color 使用 io 2014 div
当一个进程正常或异常终止的时候,内核就像其父进程发送SIGCHLD信号,因为子进程是个异步事件,所以这种信号也是内核给那个父进程发的异步通知。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数。对于这种信号的系统默认动作是忽略它。
调用wait或waitpid的进程可能会发生什么情况:
WIFEXITED(status)如果子进程正常结束则为非0值。
WEXITSTATUS(status)取得子进程exit()返回的结束代码,一般会先用WIFEXITED 来判断是否正常结束才能使用此宏。
WIFSIGNALED(status)如果子进程是因为信号而结束则此宏值为真。
WTERMSIG(status)取得子进程因信号而中止的信号代码,一般会先用WIFSIGNALED 来判断后才使用此宏。
WIFSTOPPED(status)如果子进程处于暂停执行情况则此宏值为真。一般只有使用WUNTRACED 时才会有此情况。
WSTOPSIG(status)取得引发子进程暂停的信号代码。
1 if (WIFEXITED(status)) 2 cout << "normal termination, exitstatus = " << WEXITSTATUS(status) << endl; 3 else if (WIFSIGNALED(status)) 4 cout << "abnormal termination, signalstatus = " << WTERMSIG(status) << endl; 5 else if (WIFSTOPPED(status)) 6 cout << "child stopped ,signal number = " << WSTOPSIG(status) << endl; 7 else 8 cout << "unknown status :" << status << endl;
C++ wait捕捉的信号处理WIFEXITED/WEXITSTATUS/WIFSIGNALED,布布扣,bubuko.com
C++ wait捕捉的信号处理WIFEXITED/WEXITSTATUS/WIFSIGNALED
标签:style blog http color 使用 io 2014 div
原文地址:http://www.cnblogs.com/delmory/p/3918811.html