C Linux api“;系统“;

C Linux api“;系统“;,c,linux,C,Linux,将创建一个cron作业,其中cron作业包含以下代码: int flag = system("path/main"); printf("system return value: %d \n", flag); cron作业每天执行,“标志”通常为“0”,但有时“falg”为“32512” 我有谷歌的错误代码,它的意思是“命令找不到” 但我需要你的帮助来启发我,为什么有时候可以,有时候不行。 它与相对目录“path/main”有关系吗?返回代码是一个包含多个内容的位掩码(参见示例)。在您的例子中,

将创建一个cron作业,其中cron作业包含以下代码:

int flag = system("path/main");
printf("system return value: %d \n", flag);
cron作业每天执行,“标志”通常为“0”,但有时“falg”为“32512”

我有谷歌的错误代码,它的意思是“命令找不到”

但我需要你的帮助来启发我,为什么有时候可以,有时候不行。
它与相对目录“path/main”有关系吗?返回代码是一个包含多个内容的位掩码(参见示例)。在您的例子中,它建议退出代码为255(这纯粹是来自您的子进程,而不是由于信号)。你应该检查你的
main
程序。

我们需要更多关于“有时”的详细信息。可能作业是由不同的用户以不同的策略/执行的。抱歉,缺少信息。我还没有找到任何关于“有时”的法律。对不起。正在返回由给定的状态。阅读我链接到的两个手册页。32512=127*256,因此shell的返回代码是127。意思是“找不到命令”,谢谢你的帮助。我想更仔细地检查代码^_^@结冰:如果对
system()
的调用未返回
-1
127==WEXITSTATUS(flag)
,则未找到应该执行传递到
system()
的程序的shell(
bin/sh
),或者程序本身返回了
127
。此值存在明显的模糊性。感谢您的建议。我仔细检查了我的代码,发现在逻辑上,它会更改工作目录,所以调用系统将返回错误。谢谢