C C 程式設計 執行終端命令

2021-10-18 23:17:20 字數 4020 閱讀 7800

#include

intmain

(int argc,

char

**ar**)

#include

#include

#include

#include

using

namespace std;

intmain()

while

(fgets

(line,

sizeof

(line)-1

, fp)

!=null)}

pclose

(fp)

;return0;

}

#include

intmain

(int argc,

char

**ar**)

獲取命令返回結果:

std::string getcmdresult

(const std::string &strcmd)

; file *pf =

null;if

((pf =

popen

(strcmd.

c_str()

,"r"))

==null

) std::string strresult;

while

(fgets

(buf,

sizeof buf, pf)

)pclose

(pf)

;unsigned

int isize = strresult.

size()

;if(isize >

0&& strresult[isize -1]

=='\n'

)// linux

return strresult;

}

#include

#include

#include

using

namespace std;

/*獲取cmd執行結果

cmdline:要執行的命令

*/char

*getcmdret

(char

* cmdline)

;int

main

(void

)char

*getcmdret

(char

* cmdline)

; security_attributes se =

; startupinfo sinfo =

;char tmpcmd[

1000000]=

,* retstr =

null

; dword dwlen =0;

string ret;

se.nlength =

sizeof

(se)

; se.lpsecuritydescriptor =

null

; se.binherithandle = true;

// 建立乙個匿名管道

createpipe

(&hread,

&hwrite,

&se,0)

; sinfo.cb =

sizeof

(sinfo)

; sinfo.dwflags = startf_useshowwindow | startf_usestdhandles;

// 這兩個常量分別用於設定隱藏視窗+輸出目標

sinfo.wshowwindow = sw_hide;

// 隱藏視窗執行

sinfo.hstdoutput = hwrite;

// 讓其輸出到這個管道去而不是輸出到控制台

sinfo.hstderror = hwrite;

// 錯誤資訊也是輸出到該管道

sprintf_s

(tmpcmd, max_path,

"cmd.exe /c %s"

, cmdline)

;createprocess

(null

, tmpcmd,

null

,null

, true,

null

,null

,null

,&sinfo,

&pinfo)

;closehandle

(hwrite)

;while

(dwlen !=-1

)else

}// 一定要加個延時,否則可能有重複資料

sleep(1

);} retstr =

(char*)

malloc

(sizeof

(char

)* ret.

length()

+1);

memset

(retstr,

0, ret.

length()

+1);

strncpy

(retstr, ret.

c_str()

, ret.

length()

+1);

return retstr;

}

#include

#include

#include

#include

#include

#include

bool execdoscmd

(char

* cmdline)

char tmpcmd[

1000000]=

;sprintf_s

(tmpcmd, max_path,

"cmd.exe /c %s"

, cmdline)

; qstring str

(tmpcmd)

; startupinfo sinfo =

; sinfo.cb =

sizeof

(sinfo)

; sinfo.dwflags = startf_useshowwindow | startf_usestdhandles;

// 這兩個常量分別用於設定隱藏視窗+輸出目標

sinfo.wshowwindow = sw_hide;

// 隱藏視窗執行

sinfo.hstdoutput = hwrite;

// 讓其輸出到這個管道去而不是輸出到控制台

sinfo.hstderror = hwrite;

// 錯誤資訊也是輸出到該管道

process_information pinfo =;if

(!createprocess

(null

,(lpwstr)str.

utf16()

,null

,null

,true,

null

,null

,null

,&sinfo,

&pinfo)

)closehandle

(hwrite)

; std::string ret;

dword dwlen =0;

char

* retstr =

null

;while

(dwlen !=

(dword)-1

)else

}// 一定要加個延時,否則可能有重複資料

sleep(1

);}closehandle

(hread)

;return true;

}int

main

(int argc,

char

*ar**)

參考

mac 終端成功執行scrapy命令

分享自己踩過的坑,願景是人類社會飛速進步!1 順利安裝scrapy命令 sudo pip install scrapy upgrade ignore installed six 2 mac環境終端執行scrapy,報錯如下 3 原因 上面的錯誤最後一行提示xmlrpc client,還是因為six模...

python 執行終端 控制台命令

import os os.system os.popen read strip 上面2種方法 是python 執行終端 控制台 命令的常見方法 os.system ping www.baidu.com 執行成功 返回 0 ping os.popen pint www.baidu.com read s...

Linux終端同時執行多個Linux命令方式

1.代表意思 表示任務在後台執行,如要在後台執行redis server,則有 redis server 表示前一條命令執行成功時,才執行後一條命令 如 echo 1 echo 2 wc l 表示上一條命令執行失敗後,才執行下一條命令,如 cat nofile echo fail 2.在一行中執行兩...