gpt4 book ai didi

检查 wait() 是否失败

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:22 25 4
gpt4 key购买 nike

为了知道 wait() 是否起作用,像下面这样检查它是否正确?理论上,如果 wait() 没有失败,应该把结束的子进程 pid 返回给父进程,否则父进程 pid 就是 1 对吧?

switch (process = fork())
{
case -1:
// Fork fail
perror("Fork failed");
exit(EXIT_FAILURE);

case 0:
//Child process
HERE CODE DOES SOMETHING
exit(EXIT_SUCCESS);
default:
//Parent process
pid=wait(&status);

if(pid==1){
perror("Wait failed");
}else{
exit(EXIT_SUCCESS);
}
}

最佳答案

引用 man 2 wait :

RETURN VALUE

wait(): on success, returns the process ID of the terminated child; on error, -1 is returned.

所以要检查 wait(2) 是否失败,这应该足够了:

if (wait(&status) == -1) {
perror("wait failed");
exit(1);
}

关于检查 wait() 是否失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40703654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com