2011-01-05 176 views
1

執行C程序欲寫在C程序可以讀取另一個程序並把它送給處理器execution.is有可能使用系統調用做到這一點,而無需使用殼(Linux)的使用系統調用

謝謝

回答

6

您正在尋找的系統調用是execve。它具有相關功能execl,execlp,execle,execv, execvp,具體取決於您希望如何存儲和傳遞命令行參數和/或環境變量。但值得注意的是,所有這些函數都會阻止調用它的程序執行其他任何操作,因爲新程序取代了現有程序。

如果要運行程序,請等待它完成,然後恢復原始程序,請嘗試使用庫函數system。 (雖然system確實需要/ bin/sh的。)

如果你需要的東西票友,你可能不得不forkwaitpid用的exec*功能之一相結合。手冊頁和Web上有很多關於如何組合這些功能的示例。

0

,如果你想這樣做,使用一個簡單的方法:

system("./Program_To_Run.o"); 

然而,這是不是最好的方法。這只是最快的方法。

如果使用連字符,你可以在過程中對背景:

system("./Program_To_Run.o &");