C語言利用system調(diào)用系統(tǒng)命令行詳情
system
,顧名思義,就是調(diào)用系統(tǒng)命令行,輸入為字符串,然后把這個(gè)字符串輸出給命令行,讓命令行執(zhí)行。
為了測(cè)試其特性,可以做一個(gè)小程序:
//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時(shí)退出 ?? ??? ?system(cmd); ?? ?} ?? ?return 0; }
然后開始
>gcc system.c >a.exe input code: asdfasdf 'asdfasdf' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序 或批處理文件。 input code: date 當(dāng)前日期: 2021/12/19 周日 輸入新日期: (年月日) input code: date 當(dāng)前日期: 2021/12/19 周日 輸入新日期: (年月日) input code: HELP 有關(guān)某個(gè)命令的詳細(xì)信息,請(qǐng)鍵入 HELP 命令名 ASSOC ? ? ? ? ?顯示或修改文件擴(kuò)展名關(guān)聯(lián)。 ATTRIB ? ? ? ? 顯示或更改文件屬性。 BREAK ? ? ? ? ?設(shè)置或清除擴(kuò)展式 CTRL+C 檢查。 BCDEDIT ? ? ? ?設(shè)置啟動(dòng)數(shù)據(jù)庫中的屬性以控制啟動(dòng)加載。 # 由于太長,且和命令行中輸入HELP的結(jié)果是一樣的,所以這里就省略了 有關(guān)工具的詳細(xì)信息,請(qǐng)參閱聯(lián)機(jī)幫助中的命令行參考。 input code: exit ? ? ? ?#退出
通過system
,可以做一個(gè)增強(qiáng)版的命令行。
而除了這些終端提供的命令之外,可能還需要一些自定義的語句,這些語句都被存放在環(huán)境變量中,getenv
可以獲取名字對(duì)應(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; }
其運(yùn)行結(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
....
到此這篇關(guān)于C語言利用system調(diào)用系統(tǒng)命令行詳情的文章就介紹到這了,更多相關(guān)C語言利用system調(diào)用系統(tǒng)命令行內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++ Coroutine簡(jiǎn)單學(xué)習(xí)教程
這篇文章主要為大家詳細(xì)介紹了C++ Coroutine的簡(jiǎn)單學(xué)習(xí)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08C語言深入刨析數(shù)據(jù)結(jié)構(gòu)之棧與鏈棧的設(shè)計(jì)與應(yīng)用
棧是限定僅在表尾進(jìn)行插入或刪除操作的線性表,表尾稱為棧頂(top),表頭稱為棧底(bottom)。棧的最主要特點(diǎn)就是“先進(jìn)后出”(FILO),或“后進(jìn)先出”(LIFO)。用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)表示的棧稱為“鏈棧”,鏈棧對(duì)應(yīng)于鏈表2022-05-05結(jié)合C++11新特性來學(xué)習(xí)C++中l(wèi)ambda表達(dá)式的用法
這篇文章主要介紹了C++中l(wèi)ambda表達(dá)式的用法,lambda表達(dá)式的引入可謂是C++11中的一大亮點(diǎn),同時(shí)文中也涉及到了C++14標(biāo)準(zhǔn)中關(guān)于lambda的一些內(nèi)容,需要的朋友可以參考下2016-01-01c++中臨時(shí)變量不能作為非const的引用參數(shù)的方法
下面小編就為大家?guī)硪黄猚++中臨時(shí)變量不能作為非const的引用參數(shù)的方法。小編覺得挺不錯(cuò)的現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01C++的try塊與異常處理及調(diào)試技術(shù)實(shí)例解析
這篇文章主要介紹了C++的try塊與異常處理及調(diào)試技術(shù)實(shí)例解析,有助于讀者加深對(duì)try塊調(diào)試技術(shù)的認(rèn)識(shí),需要的朋友可以參考下2014-07-07