C語言system函數(shù)使用方法詳解
函數(shù)接口
_DCRTIMP int __cdecl system( _In_opt_z_ char const* _Command );
system函數(shù)已經(jīng)被收錄在標準c庫中,頭文件為<stdlib.h>
作用
執(zhí)行系統(tǒng)命令調用命令處理器來執(zhí)行命令。
如果命令是空指針,則該函數(shù)只檢查是否有命令處理器可以被此函數(shù)使用。
命令非空則調用命令的效果取決于系統(tǒng)和庫的實現(xiàn),并可能導致程序以非標準的方式運行或終止。
補充:
執(zhí)行 dos(windows系統(tǒng)) 或 shell(Linux/Unix系統(tǒng)) 命令,參數(shù)字符串command為命令名。另,在windows系統(tǒng)下參數(shù)字符串不區(qū)分大小寫。
說明:在windows系統(tǒng)中,system函數(shù)直接在控制臺調用一個command命令。 在Linux/Unix系統(tǒng)中,system函數(shù)會調用fork函數(shù)產(chǎn)生子進程,由子進程來執(zhí)行command命令,命令執(zhí)行完后隨即返回原調用的進程
返回值
如果命令為空指針,如果命令處理器是可用的則該函數(shù)將返回一個非零值,如果不可用,則為零。
如果命令不是NULL指針,返回的值取決于系統(tǒng)和庫的實現(xiàn),但如果支持的話,通常期望它是被調用的命令返回的狀態(tài)代碼,通常是命令執(zhí)行成功返回0,執(zhí)行失敗返回-1。
測試代碼
/* system example : DIR */ #include <stdio.h> /* printf */ #include <stdlib.h> /* system, NULL, EXIT_FAILURE */ int main() { int i; printf("Checking if processor is 可用的...?"); if (system(NULL)) puts("Ok"); else exit(EXIT_FAILURE); printf("Executing command DIR...\n"); i = system("dir"); printf("The value returned was: %d.\n", i); return 0; }
參數(shù)
參數(shù) | 功能 | 使用說明 |
---|---|---|
ASSOC | 顯示或修改文件擴展名關聯(lián) | |
ATTRIB | 顯示或更改文件屬性 | |
BREAK | 設置或清除擴展式 CTRL+C 檢查 | |
BCDEDIT | 設置啟動數(shù)據(jù)庫中的屬性以控制啟動加載 | |
CACLS | 顯示或修改文件的訪問控制列表(ACL) | |
CALL | 從另一個批處理程序調用這一個 | |
CD | 顯示當前目錄的名稱或將其更改 | |
CHCP | 顯示或設置活動代碼頁數(shù) | |
CHDIR | 顯示當前目錄的名稱或將其更改 | |
CHKDSK | 檢查磁盤并顯示狀態(tài)報告 | |
CHKNTFS | 顯示或修改啟動時間磁盤檢查 | |
CLS | 清除屏幕 | * |
CMD | 打開另一個 Windows 命令解釋程序窗口 | * |
COLOR | 設置默認控制臺前景和背景顏色 | system("color 0B"); |
COMP | 比較兩個或兩套文件的內容 | |
COMPACT | 顯示或更改 NTFS 分區(qū)上文件的壓縮 | |
CONVERT | 將 FAT 卷轉換成 NTFS 你不能轉換當前驅動器 | |
COPY | 將至少一個文件復制到另一個位置 | |
DATE | 顯示或設置日期 | system("date /T"); 后面加 /t 表示顯示日期 |
DEL | 刪除至少一個文件 | |
DIR | 顯示一個目錄中的文件和子目錄 | |
DISKPART | 顯示或配置磁盤分區(qū)屬性 | |
DOSKEY | 編輯命令行、撤回 Windows 命令并創(chuàng)建宏 | |
DRIVERQUERY | 顯示當前設備驅動程序狀態(tài)和屬性 | |
ECHO | 顯示消息,或將命令回顯打開或關閉 | |
ENDLOCAL | 結束批文件中環(huán)境更改的本地化 | |
ERASE | 刪除一個或多個文件 | * |
EXIT | 退出 CMD.EXE 程序(命令解釋程序) | * |
FC | 比較兩個文件或兩個文件集并顯示它們之間的不同 | * |
FIND | 在一個或多個文件中搜索一個文本字符串 | * |
FINDSTR | 在多個文件中搜索字符串 | * |
FOR | 為一組文件中的每個文件運行一個指定的命令 | |
FORMAT | 格式化磁盤,以便用于 Windows | |
FSUTIL | 顯示或配置文件系統(tǒng)屬性 | |
FTYPE | 顯示或修改在文件擴展名關聯(lián)中使用的文件類型 | |
GOTO | 將 Windows 命令解釋程序定向到批處理程序中某個帶標簽的行 | |
GPRESULT | 顯示計算機或用戶的組策略信息 | |
GRAFTABL | 使 Windows 在圖形模式下顯示擴展字符集 | * |
HELP | 獲取該表格的內容 | |
ICACLS | 顯示、修改、備份或還原文件和目錄的 ACL | |
IF | 在批處理程序中執(zhí)行有條件的處理操作 | |
LABEL | 創(chuàng)建、更改或刪除磁盤的卷標 | |
MD | 創(chuàng)建一個目錄 | |
MKDIR | 創(chuàng)建一個目錄 | |
MKLINK | 創(chuàng)建符號鏈接和硬鏈接 | |
MODE | 查看與配置系統(tǒng)設備 | system(mode); |
MORE | 逐屏顯示輸出 | * |
MOVE | 將一個或多個文件從一個目錄移動到另一個目錄 | |
OPENFILES | 顯示遠程用戶為了文件共享而打開的文件 | |
PATH為 | 可執(zhí)行文件顯示或設置搜索路徑 | |
PAUSE | 暫停批處理文件的處理并顯示消息 | |
POPD | 還原通過 PUSHD 保存的當前目錄的上一個值 | |
打印一個文本文件 | ||
PROMPT | 更改 Windows 命令提示 | |
PUSHD | 保存當前目錄,然后對其進行更改 | |
RD | 刪除目錄 | |
RECOVER | 從損壞的或有缺陷的磁盤中恢復可讀信息 | * |
REM | 記錄批處理文件或 CONFIG.SYS 中的注釋(批注) | |
REN | 重命名文件 | |
RENAME | 重命名文件 | |
REPLACE | 替換文件 | * |
RMDIR | 刪除目錄 | |
ROBOCOPY | 復制文件和目錄樹的高級實用工具 | |
SET | 顯示、設置或刪除 Windows 環(huán)境變量 | |
SETLOCAL | 開始本地化批處理文件中的環(huán)境更改 | |
SC | 顯示或配置服務(后臺進程) | |
SCHTASKS | 安排在一臺計算機上運行命令和程序 | |
SHIFT | 調整批處理文件中可替換參數(shù)的位置 | |
SHUTDOWN | 允許通過本地或遠程方式正確關閉計算機 | system(“shutdown -s –t 60”)60秒后關機 system("shutdown -a");取消關機 system("shutdown -p");立即關閉 system("shutdown -1");注銷計算機 |
SORT | 對輸入排序 | |
START | 啟動單獨的窗口以運行指定的程序或命令 | |
SUBST | 將路徑與驅動器號關聯(lián) | |
SYSTEMINFO | 顯示計算機的特定屬性和配置 | |
TASKLIST | 顯示包括服務在內的所有當前運行的任務 | |
TASKKILL | 中止或停止正在運行的進程或應用程序 | |
TIME | 顯示或設置系統(tǒng)時間 | system("date /T"); 后面加 /t 表示顯示日期 |
TITLE | 設置 CMD.EXE 會話的窗口標題 | “TITLE 你想改成啥” |
TREE | 以圖形方式顯示驅動程序或路徑的目錄結構 | “TREE D:” |
TYPE | 顯示文本文件的內容 | “TYPE D:\\文本.txt” |
VER | 顯示 Windows 的版本 | |
VERIFY | 告訴 Windows 是否進行驗證,以確保文件正確寫入磁盤 | |
VOL | 顯示磁盤卷標和序列號 | |
XCOPY | 復制文件和目錄樹 | |
WMIC | 在交互式命令 shell 中顯示 WMI 信息 |
MODE命令
system(mode);
(936表示簡體中文)
應用示例
示例一:
改變DOS窗口的尺寸:
打開命令提示符cmd,鍵入mode con cols=100 lines=40
則DOS窗口的尺寸將會變?yōu)?0行100列的,cols最小值為13,lines最小值為1。在C語言中也可以通過system函數(shù)調用這個dos命令來實現(xiàn)這個功能。
示例二:
顯示代碼頁:
代碼頁,通俗的說就是DOS中顯示的語言。具體代碼頁可以查看代碼頁這個百科詞條。
比如,想讓DOS下顯示的語言為美式英語,則輸入mode con cp select=437
即可,輸出為:
color命令
system("color 02
"); 是表示黑背景、綠色前景
(即字的顏色).顏色屬性由兩個十六進制數(shù)字指定 -- 第一個為背景
,第二個則為前景
。每個數(shù)字可以為以下任何值之一
0 = 黑色? ? ? ?8 = 灰色
1 = 藍色? ? ? ?9 = 淡藍色
2 = 綠色? ? ? ?A = 淡綠色
3 = 湖藍色? ? ?B = 淡淺綠色
4 = 紅色? ? ? ?C = 淡紅色
5 = 紫色? ? ? ?D = 淡紫色
6 = 黃色? ? ? ?E = 淡黃色
7 = 白色? ? ? ?F = 亮白色
0 = black 8 = gray
1 = blue 9 = light blue
2 = green A = light green
3 = lake blue B = light green
4 = red C = light red
5 = purple D = lavender
6 = yellow E = light yellow
7 = white F = bright white
注意:一個程序中永遠是最后一個system(“color xx”)
起作用
到此這篇關于C語言system函數(shù)使用方法詳解的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
C++如何通過ostringstream實現(xiàn)任意類型轉string
再使用整型轉string的時候感覺有點棘手,因為itoa不是標準C里面的,而且即便是有itoa,其他類型轉string不是很方便。后來去網(wǎng)上找了一下,發(fā)現(xiàn)有一個好方法2013-09-09VS2022+libtorch+Cuda11.3安裝測試教程詳解(調用cuda)
這篇文章主要介紹了VS2022+libtorch+Cuda11.3安裝測試(調用cuda),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05C++ boost::asio編程-異步TCP詳解及實例代碼
這篇文章主要介紹了C++ boost::asio編程-異步TCP詳解及實例代碼的相關資料,需要的朋友可以參考下2016-11-11C++判斷主機是否處于聯(lián)網(wǎng)狀態(tài)
這篇文章主要為大家詳細介紹了C++判斷主機是否處于聯(lián)網(wǎng)狀態(tài),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06