我正在尋找一種從 C 或 C 編譯的單獨 Linux 可執行檔案執行 Linux 可執行檔案的方法。但是,我查看了許多 Stack Overflow 帖子,這些帖子都指示用戶要求使用該system()函式或系統函式的包裝器,我不想要一個依賴于 shell 的程式,因為如果它被轉移它很容易崩潰到具有不同外殼的不同作業系統。
在我如何在 Linux 中使用引數執行外部程式的帖子中,第二個答案指出它execve()是函式的包裝器,這讓我對家族system()中的其他函式保持警惕。exec()
我還看過以下文章:
- 如何撰寫 C 程式來執行另一個程式?
- http://www.cplusplus.com/forum/beginner/168287/
- 從 C 程式在 Linux 中運行另一個程式
感謝所有幫助!
uj5u.com熱心網友回復:
execve()不是 ; 的包裝system()器 它是execve系統呼叫本身的包裝器。
execve() 替換當前行程,因此您可能需要fork()然后execve()在子行程中執行,從而模擬system().
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436280.html
上一篇:檔案夾大小作為變數
下一篇:與C 進行串行通信時的緩沖區問題
