C語言呼叫System命令並獲取命令的返回值
/* just get lastest info */
int _System(const char * cmd, char *pRetMsg, int msg_len)
{
FILE * fp;
char * p = NULL;
int res = -1;
if (cmd == NULL || pRetMsg == NULL || msg_len < 0)
{
printf("Param Error!\n");
return -1;
}
if ((fp = popen(cmd, "r") ) == NULL)
{
printf("Popen Error!\n");
return -2;
}
else
{
memset(pRetMsg, 0, msg_len);
//get lastest result
while(fgets(pRetMsg, msg_len, fp) != NULL)
{
printf("Msg:%s",pRetMsg); //print all info
}
if ( (res = pclose(fp)) == -1)
{
printf("close popenerror!\n");
return -3;
}
pRetMsg[strlen(pRetMsg)-1] = '\0';
return 0;
}
}
int main()
{
//test cmd
char *cmd = "lsmod";
char a8Result[128] = {0};
int ret = 0;
ret = _System(cmd, a8Result, sizeof(a8Result));
printf("ret = %d \na8Result = %s\nlength = %d \n", ret, a8Result, strlen(a8Result));
return 0;
}
簡單的例項,C語言呼叫System命令,並且取得返回值(提供一個思路),程式碼僅僅返回的是最後一行的資訊。
如果獲取所有的內容,可以使用連結串列儲存每一行資料即可!
相關文章
- C++系統相關操作1 - 呼叫命令列並獲取返回值C++命令列
- c#呼叫本地命令並擷取OutputC#
- Spring 呼叫 Stored Procedure 並獲取返回值Spring
- Linux c程式中獲取shell指令碼輸出(如獲取system命令輸出)LinuxC程式指令碼
- C語言 Make命令教程C語言
- Node.js 執行 shell 命令 主程式獲取返回值Node.js
- C語言關於檔案操作的命令C語言
- go語言與c語言的相互呼叫GoC語言
- C++呼叫CMD命令C++
- 例項原始碼1:利用Java呼叫可執行命令並取得其返回值原始碼Java
- 獲取IP地址命令
- C/C++呼叫Windows DOS命令C++Windows
- c語言獲取陣列長度的函式C語言陣列函式
- C 語言預處理命令總結大全
- python 呼叫 shell ,獲取返回值和返回資訊Python
- 常用OS獲取資訊命令
- C語言程式設計——9,預處理命令C語言程式設計
- C++/Php/Python語言執行shell命令C++PHPPython
- C語言函式呼叫棧C語言函式
- C語言呼叫 Java(Linux)C語言JavaLinux
- JAVA JNI 呼叫C語言 DemoJavaC語言
- C語言 JNI 呼叫JAVA DemoC語言Java
- 併發程式設計之:非同步呼叫獲取返回值程式設計非同步
- 獲取系統時間的DOS命令
- Linux使用time命令獲取命令執行時間Linux
- C++語言亞馬遜獲取AMAZON商品詳情 API介面C++亞馬遜API
- C語言程式設計獲取PE檔案DOS頭C語言程式設計
- 獲取系統語言/當前 App支援語言APP
- C#使用程式呼叫bash,不斷往bash內插入命令並執行C#
- C#呼叫Windows CMD命令並,返回輸出結果或錯誤資訊C#Windows
- C語言動態呼叫庫(轉)C語言
- C語言關於多原始檔的呼叫C語言
- 獲取Linux本機IP命令Linux
- C語言中的命令列引數C語言命令列
- java開發C語言編譯器:為C語言提供API呼叫JavaC語言編譯API
- 獲得檔案的大小(c語言)C語言
- 如何用最短的時間學會C語言,並掌握C語言的精髓所在?C語言
- go語言獲取外部引數Go