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