c/c++程式呼叫shell命令可以通過以下函式實現:
(1)file *popen(const char *command
, const char *mode
);
過程:
popen()會呼叫fork()產生子程序,然後從子程序中呼叫/bin/sh -c來執行引數command的指令。引數mode可使用r代表讀取,w代表寫入。依照mode值,popen()會建立管道連線到子程序的標準輸出裝置或標準輸入裝置,然後返回乙個檔案指標。隨後程序便可利用此檔案指標來讀取子程序的輸出裝置或是寫入到子程序的標準輸入裝置中。 popen()開啟的管道需用pclose關閉。
舉 例:
#include
int main(int argc, char * argv)
2. int system(const char *command
);
過程:
system()會呼叫fork()產生子程序,然後從子程序中呼叫/bin/sh -c來執行引數command的指令。此命令執行完後立即返回原呼叫程序。返回值=-1,出現錯誤;返回值=0,呼叫成功但是沒有出現子程序;返回值》0,成功退出的子程序id。
舉例:
#include
int main(int argc, char * argv)
3. exec函式族
int execl(const char *path
, const char *arg0
, ... /*, (char *)0
*/);
int execv(const char *path
, char *constargv
); int execle(const char *path
, const char *arg0
, ... /*,(char *)0
, char *constenvp
*/);
int execve(const char *path
, char *constargv
, char *const envp
); int execlp(const char *file
, const char *arg0
, ... /*, (char *)0
*/);
int execvp(const char *file
, char *constargv
); 具體用法可man 函式名查閱手冊
簡述 shell 解釋命令,呼叫程式
一 簡介 1 cal 日曆 ls 檢視檔案和目錄 whoami 檢視當前使用者資訊 logout 退出登入 shutdown 或powoff 關閉系統 init 6 或reroot 重啟系統 passwd 修改密碼 二 檔案管理 1 檔案系統 樹結構 目錄 檔案 2 檔案型別 普通 目錄及裝置檔案 ...
awk呼叫shell命令
awk可以用getline或system來呼叫shell的命令 1 getline 通過在awk內使用管道,可以把shell命令的輸出傳送給awk awk begin sun mar 8 22 21 52 2009 順便說一下getline的其他用法.getline除了可以通過管道從shell命令裡...
python呼叫shell命令
在python程式中呼叫shell命令 此函式會啟動子程序,在子程序中執行command,並返回command命令執行完畢後的退出狀態,如果command有執行內容,會在標準輸出顯示。這實際上是使用c標準庫函式system 實現的。缺點 這個函式在執行command命令時需要重新開啟乙個終端,並且無...