C語(yǔ)言利用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;
}然后開(kāi)始
>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ù)庫(kù)中的屬性以控制啟動(dòng)加載。 # 由于太長(zhǎng),且和命令行中輸入HELP的結(jié)果是一樣的,所以這里就省略了 有關(guān)工具的詳細(xì)信息,請(qǐng)參閱聯(lián)機(jī)幫助中的命令行參考。 input code: exit ? ? ? ?#退出
通過(guò)system,可以做一個(gè)增強(qiáng)版的命令行。
而除了這些終端提供的命令之外,可能還需要一些自定義的語(yǔ)句,這些語(yǔ)句都被存放在環(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語(yǔ)言利用system調(diào)用系統(tǒng)命令行詳情的文章就介紹到這了,更多相關(guān)C語(yǔ)言利用system調(diào)用系統(tǒng)命令行內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C/C++ 實(shí)現(xiàn)遞歸和棧逆序字符串的實(shí)例
這篇文章主要介紹了C/C++ 實(shí)現(xiàn)遞歸和棧逆序字符串的實(shí)例的相關(guān)資料,這里提供實(shí)例代碼幫助大家學(xué)習(xí)掌握,需要的朋友可以參考下2017-08-08
簡(jiǎn)單了解C++常見(jiàn)編程問(wèn)題解決方案
這篇文章主要介紹了C++常見(jiàn)編程問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
C 語(yǔ)言基礎(chǔ)之C語(yǔ)言的常見(jiàn)關(guān)鍵字
C語(yǔ)言中有一些預(yù)先定義的字符串,他們本身被賦予了自身的功能。并且我們?cè)诙x變量的時(shí)候,不能去搶他們的名字來(lái)用。他們就是今天的主角:關(guān)鍵字,下面文章將給大家做詳細(xì)介紹2021-09-09
基于C語(yǔ)言實(shí)現(xiàn)的TCP服務(wù)器的流程分析
本文詳細(xì)介紹了如何使用C語(yǔ)言編寫(xiě)一個(gè)簡(jiǎn)單的TCP服務(wù)器,包括創(chuàng)建套接字、綁定IP和端口、監(jiān)聽(tīng)連接請(qǐng)求、接受客戶(hù)端連接、數(shù)據(jù)接收與發(fā)送以及關(guān)閉套接字等步驟,最后通過(guò)一個(gè)簡(jiǎn)單的示例展示了TCP服務(wù)器的基本實(shí)現(xiàn)過(guò)程2024-10-10
C語(yǔ)言 typedef:給類(lèi)型起一個(gè)別名
本文主要介紹C語(yǔ)言 typedef,這里整理了相關(guān)資料及簡(jiǎn)單示例代碼幫助大家學(xué)習(xí)理解,有興趣的小伙伴可以參考下2016-08-08

