1

我正在开发一个程序并了解父/子进程。目前我的 childprocess 确实

exit(variable);

在我的 main() 中,我有:

signal(SIGCHLD, chldHandler);

在我的 main() 之外,我有:

void chldHandler(int sig) {

}

如何从我的 chldHandler 访问变量?

4

1 回答 1

1

wait()在信号处理程序内部使用,传入一个非 NULL 指针来获取状态。

int status;
wait(&status);

要解码状态,请检查它是否正常退出,然后使用WEXITSTATUS()宏:

if (WIFEXITED(status)) {
    int variable = WEXITSTATUS(status);
    /*...*/
}
于 2013-05-02T22:24:55.523 回答