您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“C語言怎么利用system調(diào)用系統(tǒng)命令行”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
system
,顧名思義,就是調(diào)用系統(tǒng)命令行,輸入為字符串,然后把這個字符串輸出給命令行,讓命令行執(zhí)行。
為了測試其特性,可以做一個小程序:
//system.c #include<stdlib.h> #include<stdio.h> #include<string.h> int main(){ char cmd[100]; while(1){ printf("input code: "); gets(cmd); if(strcmp(cmd,"exit")==0) break; //當(dāng)輸入exit時退出 system(cmd); } return 0; }
然后開始
>gcc system.c >a.exe input code: asdfasdf 'asdfasdf' 不是內(nèi)部或外部命令,也不是可運行的程序 或批處理文件。 input code: date 當(dāng)前日期: 2021/12/19 周日 輸入新日期: (年月日) input code: date 當(dāng)前日期: 2021/12/19 周日 輸入新日期: (年月日) input code: HELP 有關(guān)某個命令的詳細(xì)信息,請鍵入 HELP 命令名 ASSOC 顯示或修改文件擴(kuò)展名關(guān)聯(lián)。 ATTRIB 顯示或更改文件屬性。 BREAK 設(shè)置或清除擴(kuò)展式 CTRL+C 檢查。 BCDEDIT 設(shè)置啟動數(shù)據(jù)庫中的屬性以控制啟動加載。 # 由于太長,且和命令行中輸入HELP的結(jié)果是一樣的,所以這里就省略了 有關(guān)工具的詳細(xì)信息,請參閱聯(lián)機(jī)幫助中的命令行參考。 input code: exit #退出
通過system
,可以做一個增強(qiáng)版的命令行。
而除了這些終端提供的命令之外,可能還需要一些自定義的語句,這些語句都被存放在環(huán)境變量中,getenv
可以獲取名字對應(yīng)的環(huán)境變量
char *getenv(const char *name)
例如:
#include <stdio.h> #include <stdlib.h> int main () { printf("PATH : %s\n", getenv("PATH")); return 0; }
其運行結(jié)果為:
E:\Documents\00\1220>a.exe
PATH : C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin;C:\Python310\Scripts\;C:\Python310\;C:\Program Files\Common Files\Oracle\Java\javapath;D:\CS\ImageMagick;(x86)\Common Files\Intel\Shared
....
“C語言怎么利用system調(diào)用系統(tǒng)命令行”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。