我應該如何檢查系統命令是否成功運行並且沒有返回錯誤? 根據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'。使用它編寫安全,可靠的代碼幾乎是不可能的。 –