【发布时间】:2012-01-20 13:42:56
【问题描述】:
我应该如何检查系统命令是否成功运行并且没有返回错误? 根据MSDN Library,有多种情况。我无法确定以下 sn-p 是否正确。
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 设置为以下值之一:
【问题讨论】:
-
永远不要使用
system。使用它编写安全、健壮的代码几乎是不可能的。