我正在开发一个程序并学习父/子进程。 目前我的子进程是
exit(variable);
在我的 main() 中我有:
signal(SIGCHLD, chldHandler);
在我的 main() 之外我有:
void chldHandler(int sig) {
}
如何从我的 chldHandler 访问变量?
最佳答案
您在信号处理程序中使用 wait()
,传入一个非 NULL 指针以获取状态。
int status;
wait(&status);
要解码状态,检查它是否正常退出,然后使用 WEXITSTATUS()
宏:
if (WIFEXITED(status)) {
int variable = WEXITSTATUS(status);
/*...*/
}
关于C 父/子退出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16348630/