Как мне проверить, была ли системная команда выполнена успешно и она не вернула ошибку?
Согласно 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. Если команда не NULL, система возвращает значение, которое возвращается интерпретатором команд. Он возвращает значение 0 только в том случае, если интерпретатор команд возвращает значение 0. Возвращаемое значение - 1 указывает на ошибку, и для errno установлено одно из следующих значений: