1
我寫了一個小型的C++程序,它接受一些輸入文件並在它們上運行一些ffmpeg進程(通過'system()'函數)。我想向該程序添加一些代碼以刪除原始文件,但我需要確保ffmpeg命令正確執行且沒有錯誤。如何讓我的C++程序檢查它使用的system()函數是否正確執行?C++是一個系統調用正確執行
我寫了一個小型的C++程序,它接受一些輸入文件並在它們上運行一些ffmpeg進程(通過'system()'函數)。我想向該程序添加一些代碼以刪除原始文件,但我需要確保ffmpeg命令正確執行且沒有錯誤。如何讓我的C++程序檢查它使用的system()函數是否正確執行?C++是一個系統調用正確執行
據爲system
文檔如果命令是不是一個空指針,則返回值依賴於 系統和庫實現,但人們普遍預計 由返回的狀態代碼所謂的命令,如果支持。
換句話說:
if(system("mycommand") != 0)
{
cout << "mycommand failed..." << endl;
}
或類似的東西。 [很明顯,假定「mycommand」被定義爲如果成功則給出0的結果代碼 - 大多數情況都是這樣,但也有例外]。
我已經添加到我的程序中,它似乎工作正常,但我只是不確定是否有可能出現這種情況,它失敗了,仍然返回0.是否有某處我可以查找ffmpeg的返回狀態代碼列表?我可能會使刪除命令只是將原始文件移動到垃圾箱,而不是使用'rm',這樣如果我看到出現了問題,我仍然可以檢索它。 – Sam
@Sam:有人會懷疑'ffmpeg'的一些文檔確實記錄了不同成功/失敗情況下的返回值。但我不知道你會在哪裏找到。 –