gpt4 book ai didi

c - 调用子进程时退出状态 56

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:12 25 4
gpt4 key购买 nike

我正在尝试调用程序并获取其返回值。我使用 fork()execv() 调用子进程,现在等待状态,但我收到 56 作为退出状态,我不明白为什么。我单独检查了子进程,它工作正常。

56 是什么意思,我该如何解决?


这是相关代码的一部分:

pid_t pid = fork(); 

if (pid < 0)
// handle error

if (pid == 0)
execv(filename, argv); // calls child process

waitpid(pid, &status, 0);

if (WIFEXITED(status))
// handle success
else if(WIFSIGNALED(status))
printf("%d\n", (int) WTERMSIG(status)); // here I get 56 now, when I print the error using stderror I get this: "Invalid request code"

最佳答案

您不是打印退出状态,而是打印终止进程的信号数。当子进程正常退出(WIFEXITED)时,您不会打印任何内容。应该是这样的:

if (WIFEXITED(status))      
printf("%d\n", (int)WEXITSTATUS(status));

关于c - 调用子进程时退出状态 56,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22946666/

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