我应该如何检查系统命令是否成功运行并且没有返回错误? 根据MSDN Library,有多种情况。我无法确定下列代码段是否正确。如何检查系统()结果
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.");
}
返回值
如果命令是NULL和命令解释被发现,返回一个非零值。如果未找到命令解释程序,则返回0并将errno设置为ENOENT。如果command不是NULL,则系统返回由命令解释器返回的值。仅当命令解释程序返回值0时,才会返回值0.返回值-1表示错误,且errno设置为以下值之一:
[如何获取系统运行的命令的状态()]的可能的重复(http://stackoverflow.com/questions/8941691/how-to-get-the-status-of-command-run-by -system) –
切勿使用'system'。使用它编写安全,可靠的代码几乎是不可能的。 –