在linux程式開發中經常需要呼叫一些現有的shell介面,比如ifconfig、ping等。通過以下程式就可以直接呼叫,雖然和**實現相比效率較低,但是**編寫較為簡單。
```c
/*函式功能:popen()會呼叫fork()產生子程序,然後從子程序中呼叫/bin/sh -c來執行引數command的指令。
引數type可使用「r」代表讀取,「w」代表寫入。
依照此type值,popen()會建立管道連到子程序的標準輸出裝置或標準輸入裝置,然後返回乙個檔案指標。
隨後程序便可利用此檔案指標來讀取子程序的輸出裝置或是寫入到子程序的標準輸入裝置中
返回值:若成功則返回檔案指標,否則返回null,錯誤原因存於errno中
*//*
函式功能:pclose()用來關閉由popen所建立的管道及檔案指標。引數stream為先前由popen()所返回的檔案指標
返回值:若成功返回shell的終止狀態(也即子程序的終止狀態),若出錯返回-1,錯誤原因存於errno中
*/#include
#include
#define max_file_len 1024*10
void
executecmd
(const
char
*cmd,
char
*result)
; file *ptr;
strcpy
(ps, cmd);if
((ptr=
popen
(ps,
"r"))!=
null
)//開啟管道
pclose
(ptr)
;//關閉管道
ptr =
null;}
else
}int
main()
C語言呼叫shell命令方法
在c語言中執行shell命令的方法 1.system shell string 該方法無法返回shell命令的輸出結果,只能返回返回值。2.popen fgets fputs pclose 該方法可以讀取shell命令的輸出結果和返回值,也可以向shell命令輸入引數。include file po...
如何在C語言中呼叫shell命令
1 system 執行shell 命令 相關函式 fork,execve,waitpid,popen 表頭檔案 include 定義函式 int system const char string 函式說明 system 會呼叫fork 產生子程序,由子程序來呼叫 bin sh c string來執行...
如何在C語言中呼叫shell命令
1 system 執行shell 命令 相關函式 fork,execve,waitpid,popen 表頭檔案 include 定義函式 int system const char string 函式說明 system 會呼叫fork 產生子程序,由子程序來呼叫 bin sh c string來執行...