1樓:育知同創教育
在c語言中呼叫shell命令的方法實現。
c程式呼叫shell指令碼共有兩種方法 :system()、popen(),分別如下:
system()
不用自己去建立程序,系統已經封裝了這一步,直接加入自己的命令即可
popen() 也可以實現執行的命令,比system
開銷小以下分別說明:
1)system(shell命令或shell指令碼路徑);
system()
會呼叫fork()產生 子歷程,由子歷程來呼叫/bin/sh-c string來履行 引數string字串所代表的命令,此命令履行
完後隨即返回原呼叫的歷程。在呼叫system()期間sigchld 訊號會被暫時擱置,sigint和sigquit 訊號則會被漠視 。
返 回值:如果system()在呼叫/bin/sh時失敗則返回127,其他失敗原因返回-1。若引數string為空指標(null),則返回非零值。 如果
system()呼叫成功 則最後會返回履行 shell命令後的返回值,但是此返回值也有可能為system()呼叫/bin/sh失敗所返回的127,因
此最好能再反省 errno 來確認履行 成功 。
system命令以其簡略
高效的作用得到很很廣泛 的利用 ,下面是一個例子
例:在/tmp/testdir/目錄下有shell指令碼tsh.sh,內容為
#!/bin/sh
wget $1
echo "done!"
2)popen(char
*command,char *type)
popen()
會呼叫fork()產生 子歷程,然後從子歷程中呼叫/bin/sh -c來履行 引數command的指令。引數type可應用
「r」代表讀取,「w」代表寫入。遵循此type值,popen()會建立 管道連到子歷程的標準 輸出裝置 或標準 輸入裝置
,然後返回一個檔案指標。隨後歷程便可利用 此檔案指標來讀取子歷程的輸出裝置 或是寫入到子歷程的標準 輸入裝置 中。此外,所有應用 文
件指標(file*)操作的函式也都可以應用 ,除了fclose()以外。
返回值:若成功
則返回檔案指標,否則返回null,差錯 原因存於errno中。注意:在編寫具suid/sgid許可權的程式時請儘量避免應用
popen(),popen()會繼承環境變數,通過環境變數可能會造成系統安全的問題。
例:c程式popentest.c內容如下:
#include
main
2樓:匿名使用者
使用system()函式 或者winexec()函式 注意:system函式應包含標頭檔案,如果你想在他機上執行你的程式 應把msvcrt.dll檔案拷到你的程式目錄下(該檔案在%windir%\system32資料夾下可以找的) winexec函式為windows api 使用應包含 標頭檔案,第二個引數 可以是sw_show(顯示呼叫函式視窗),sw_hide(不顯示).
3樓:聽不清啊
c語言通過執行
system("pause");
可以執行cmd命令 pause 來暫停螢幕的滾動 或者閃退。使用者可以按任意鍵後再繼續後續的程式執行。
4樓:匿名使用者
給你個例子你就知道了!這個**是格式化d盤的意思,這裡引用的正是dos命令中的format格式化命令,其餘的命令都大同小異!!
#include
void main()
5樓:匿名使用者
使用system()函式,如呼叫dos的dir命令就寫system("dir");
記住程式開頭要加上#include
6樓:匿名使用者
#include //這個標頭檔案必須的,否則編譯器無法識別system命令!
int main()
7樓:匿名使用者
#include
#include
void main()
c語言如何執行cmd命令並獲得輸出
8樓:匿名使用者
有可能你使用的不是管理員許可權!導致命令管道開啟失敗!
c/c++怎麼讓程式執行cmd命令?
9樓:匿名使用者
system("這裡寫所要執行的cmd命令");
比如我要開啟計算機
#include「stdio.h」
void main()
10樓:匿名使用者
使用system函式,引數就是命令的c風格字串
標頭檔案是(c) (c++)
11樓:匿名使用者
在程式頭部加上#include,然後就可以用system(「字串」),來執行cmd命令了。字串就是要執行的cmd命令。比如:
shutdown -s -t 00 可以在c語言或c++中這樣表示:system("shutdown -s -t 00");
12樓:匿名使用者
#include
using namespace std;int main()return 0;
} 輸入e:\1.txt將開啟我e盤下的1.txt檔案。 你也可以輸入其他命令的:如重啟啊,關機啊什麼的·
13樓:匿名使用者
用個標頭檔案stdlib.h
然後使用system ("cmd命令")函式就成!!!
14樓:匿名使用者
比如說 cls 清屏的 , system("cls");
測試#include
int main(void)
測試
C語言中如何產生隨機數及其原理,C語言中如何產生一個隨機數及其原理
使用函式 rand 舉例 int rrr rand 100 則產生 0,99 的隨機數 使用時請增加包含檔案 include c語言怎樣產生一定範圍的隨機數?編譯環境為 vs2013 產生1到3的整型隨機數的 如下 include include include define max 3 這個函式的...
在c語言中如何用log函式啊,在C語言中如何用log函式啊?
把printf m 5.2 f n m 改為printf m 5.2f n m c語言中log函式怎麼使用啊 1 c語言中,有兩個log函式,分別 為log10和log函式,具體用法如下 2 函式名 log10 功 能 對數函式log,以10為底 用 法 double log10 double x ...
如何在c中呼叫另外專案的類,如何在c 中呼叫另外一個專案的類?
在a專案上新增引用,比如你想呼叫b專案的一些類或方法,在a專案上右鍵 新增引內用 add reference 選擇本地專案,找到容b專案後,新增引用.程式中使用using b 這樣就可以使用b中的類和方法了.祝你成功 c 如何呼叫另外一個專案的類 在a專案上新增引用,比如你想呼叫b專案的一些類或方法...