C語言執行cmd命令並獲取執行結果

2021-10-25 21:45:02 字數 2437 閱讀 8764

優點:跨平台

缺點:windows下呼叫時會閃出控制台視窗

#

include

#include

/*** @brief 使用popen呼叫終端並獲取執行結果

* * @param[in] cmd 命令內容

* @param[out] result 儲存結果的位址

* @return 0或1 執行狀態,失敗或成功

*/int

exec_cmd

(const

char

*cmd,

char

*result)

;while(!

feof

(pipe)

)pclose

(pipe)

;return1;

}

優點:後台程序執行,無控制台視窗

缺點:僅適用windows

#

include

#include

/*** @brief 通過建立程序的方式無控制台視窗執行cmd

** @param[in] cmd 命令

* @param[out] result 執行結果

* @return 1|0|-1 成功|管道建立失敗|程序建立失敗

*/int

exec_cmd_1

(char

* cmd,

char

* result)

;// 此結構體用於指定新程序的主視窗特性 = sizeof(startupinfo);

getstartupinfo

(&si)

; si.wshowwindow = sw_hide;

// 視窗設為隱藏

si.hstderror =

null

;//h_write; // 標識控制台視窗的快取,可指定管道

si.hstdoutput = h_write;

// 同上

si.dwflags = startf_useshowwindow | startf_usestdhandles;

// 使用wshowwindow成員,使用hstdinput、hstdoutput、hstderror成員

process_information pi;

// 此結構返回有關新程序及其主線程的資訊if(

!createprocess

(null

, cmd,

null

,null

, true,

null

,null

,null

,&si,

&pi)

)// 建立程序

return-1

;closehandle

(h_write)

;closehandle

(pi.hthread)

;closehandle

(pi.hprocess)

;char buffer[

1024]=

; dword i =

0, bytes_read;

while

(i <

2048

)closehandle

(h_read)

;return1;

}/**

* @brief 通過建立程序的方式無控制台視窗執行cmd

** @param[in] cmd 命令

* @return 1|0|-1 成功|管道建立失敗|程序建立失敗

*/int

exec_cmd_2

(char

* cmd)

;// 此結構體用於指定新程序的主視窗特性 = sizeof(startupinfo);

getstartupinfo

(&si)

; si.wshowwindow = sw_hide;

si.dwflags = startf_useshowwindow;

process_information pi;

// 此結構包含有關新程序及其主線程的資訊if(

!createprocess

(null

, cmd,

null

,null

, true,

null

,null

,null

,&si,

&pi)

)return-1

;closehandle

(pi.hthread)

;closehandle

(pi.hprocess)

;return1;

}

#

include

void

main()

c 執行cmd命令

using system using system.collections.generic using system.linq using system.text using system.threading using system.diagnostics catch exception e re...

C語言執行命令並獲取返回值

工作原理 popen先執行fork,然後呼叫exec執行cmdstring,並返回乙個標準的i o檔案指標。標頭檔案 include 原型 file popen const char cmdstring,const char type cmdstring 包含shell命令字串 為 w 時,則檔案指...

cmd 執行命令

一 一鍵開啟執行 開啟 執行 視窗,都是通過 開始 選單中的命令來完成的。其實我們可以為執行建立乙個快捷方式,一鍵開啟執行視窗。右擊桌面上的快捷方式,開啟屬性視窗。切換到 快捷鍵 方式選項卡,在 快捷鍵 裡面輸入乙個按鍵,然後單擊 確定 按鈕,這樣我們要開啟執行視窗時只需要按下該快捷鍵即可。二 快速...