gpt4 book ai didi

linux system(3) 调用失败 - 如何知道类似 errno 的错误代码?

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

当我用一些命令调用 system(char* Command) 而它失败时,我想知道错误代码(而不是解析文本输出)。例如,我运行 system("rm file") 并且 'file' 不存在 - 我如何才能将 ENOENT 接收到我的应用程序中?

最佳答案

您只能在命令明确返回该状态时执行此操作。

rc = system(...);
if (rc != -1 && WIFEXITED(rc))
printf("Terminated with status %d\n", WEXITSTATUS(rc));

The value returned is -1 on error (e.g. fork(2) failed), and the return status of the command otherwise. This latter return status is in the format specified in wait(2). Thus, the exit code of the command will be WEXITSTATUS(status).

但是,如果命令在出错时简单地返回 1,则调用者很难说出真正的原因。

关于linux system(3) 调用失败 - 如何知道类似 errno 的错误代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7619566/

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