我在linux中使用系統api來實現shell命令操作。有時在執行該命令時,系統調用會被阻止並永遠不會返回。因此,如果我知道執行的命令的進程ID,我將終止該進程並再次調用系統API。獲得由系統api執行的pid命令調用
如:
system("ftpget -u<> -p<> ip remote-file local-file");
有時ftpget
塊和系統調用永遠不會返回。所以我不希望系統調用被無限期阻止。除殺死ftpget
進程之外是否還有其他解決方案? 如果不是,那麼我如何獲得ftpget
的進程ID?
'system'是'fork' /'exec'方便的函數。如果你想要pid,你必須犧牲便利性。 –
正如上面的評論,但'posix_spawn'可能證明這些日子更好的選擇。 – davmac