我应该如何检查系统命令是否成功运行并且没有返回错误? 根据{{3}},有多个案例。我无法确定以下代码段是否正确。
char buffer[100];
int ret_val;
strcpy(buffer, "copy *.txt ");
strcat(buffer, path);
ret_val = system(buffer);
if(0 != ret_val)
{
perror("There was an error");
}
else
{
printf("The command was run successfully.");
}
返回值
如果command为NULL并且找到了命令解释器,则返回非零值。如果未找到命令解释程序,则返回0并将errno设置为ENOENT。如果command不为NULL,则系统返回命令解释程序返回的值。仅当命令解释器返回值0时,它才返回值0.返回值-1表示错误,并且errno设置为以下值之一:
答案 0 :(得分:1)
要捕获所有案例,您还需要检查errno
,如文档所述:
if (ret_val == 0 && errno == 0)
{
printf("success!\n");
}
请在致电errno
之前确保清除 system()
。
答案 1 :(得分:0)
由于system
的参数不是NULL,所以你专注于那个非常简单的情况:-1
是system
函数失败,否则返回代码实际命令。