獲取信息,我想編寫一個程序,做這個命令:如何從子進程
gcc -c file1 file2 file3 ...
程序必須創建子進程和每個孩子將編譯一個文件。我在子進程中使用這個命令:
execlp("gcc","gcc","-c","-Wall",argv[i],NULL);
到目前爲止好。問題是如果編譯文件時出現錯誤,則父進程必須在出現錯誤時打印文件的名稱。這是父母將打印文件名的一個條件。
我的解決方案是創建一個包含子pid和它編譯的文件名的表。父母將等待其孩子結束。在孩子的盡頭,我們看看孩子是否正常結束(它返回0)。如果不是,我們在表中搜索找到它使用他的pid處理的文件名。
我正在尋找另一種解決方案。我不知道是否有辦法將文件名發送到父進程。當然,只有在該文件中存在錯誤時我們纔會這樣做。
謝謝。
對不起,我忘了說,我的程序是在C不是C++,我必須使用POSIX標準 –
哦,這改變了事情,不是嗎? – ryyker
@rabahRachid - 在POSIX上添加了一些註釋。 'pthread_join()'傳遞'void ** arg'。應該提供方法來做你需要的。 – ryyker