我正在开发一个程序并学习父/子进程。 目前我的子进程确实
exit(variable);
在我的主()中我有:
signal(SIGCHLD, chldHandler);
在我的主要()之外我有:
void chldHandler(int sig) {
}
如何从chldHandler访问变量?
答案 0 :(得分:1)
在信号处理程序中使用wait()
,传入非NULL指针以获取状态。
int status;
wait(&status);
要解码状态,请检查它是否正常退出,然后使用WEXITSTATUS()
宏:
if (WIFEXITED(status)) {
int variable = WEXITSTATUS(status);
/*...*/
}