daemo中若忽略掉了SIGCHLD信号,则在使用system函数时,需先把忽略的信号设置为默认处理方式,然后才能调用system函数。
否则system调用得到的返回值将不是子进程的返回值。
signal(SIGCHLD, SIG_DFL);
ret = system(cmd);
signal(SIGCHLD, SIG_IGN);
本文介绍在daemo环境中如何正确处理SIGCHLD信号,确保system函数能够正常获取子进程的返回值。通过调整信号处理方式,可以避免因信号被忽略而导致system调用返回错误值的问题。
daemo中若忽略掉了SIGCHLD信号,则在使用system函数时,需先把忽略的信号设置为默认处理方式,然后才能调用system函数。
否则system调用得到的返回值将不是子进程的返回值。
signal(SIGCHLD, SIG_DFL);
ret = system(cmd);
signal(SIGCHLD, SIG_IGN);
被折叠的 条评论
为什么被折叠?