所以我在C++中發現我可以使用popen()方法來運行一個命令並打開一個流,以便我可以讀取它的輸入和輸出。 這適用於我正在使用它,但它困擾我,它將一個命令傳遞到外殼爲了做到這一點。C++:如何在不傳遞命令的情況下執行文件?
我想知道的是,如果可以在給定文件位置的情況下執行可執行文件。然後我需要能夠讀取程序的輸出。我可以在不向shell傳遞命令的情況下執行此操作嗎?
我只是對不同shell的兼容性有所擔憂。如果我設計我的程序時採用BASH環境,如果它是使用Bourne Shell或CSH運行的話,它可能最終會失效嗎?或者我只是在過度使用它?
除了相當無用的std :: system()之外,沒有可執行程序的可移植方式。有很多操作系統特定的方法來做到這一點。 –
使用'exec'函數之一。如果您希望原始程序繼續執行,請與'fork'組合。 –
謝謝Jesper和Douglas。 exec和fork命令正是我所需要的。我一定會考慮使用他們和管道爲我的應用程序 –