函數接口
1
2
3
4
5
|
_DCRTIMP int __cdecl system ( _In_opt_z_ char const * _Command ); |
system函數已經被收錄在標準c庫中,頭文件為<stdlib.h>
作用
執行系統命令調用命令處理器來執行命令。
如果命令是空指針,則該函數只檢查是否有命令處理器可以被此函數使用。
命令非空則調用命令的效果取決于系統和庫的實現,并可能導致程序以非標準的方式運行或終止。
補充:
執行 dos(windows系統) 或 shell(Linux/Unix系統) 命令,參數字符串command為命令名。另,在windows系統下參數字符串不區分大小寫。
說明:在windows系統中,system函數直接在控制臺調用一個command命令。 在Linux/Unix系統中,system函數會調用fork函數產生子進程,由子進程來執行command命令,命令執行完后隨即返回原調用的進程
返回值
如果命令為空指針,如果命令處理器是可用的則該函數將返回一個非零值,如果不可用,則為零。
如果命令不是NULL指針,返回的值取決于系統和庫的實現,但如果支持的話,通常期望它是被調用的命令返回的狀態代碼,通常是命令執行成功返回0,執行失敗返回-1。
測試代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/* 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; } |
參數
參數 | 功能 | 使用說明 |
---|---|---|
ASSOC | 顯示或修改文件擴展名關聯 | |
ATTRIB | 顯示或更改文件屬性 | |
BREAK | 設置或清除擴展式 CTRL+C 檢查 | |
BCDEDIT | 設置啟動數據庫中的屬性以控制啟動加載 | |
CACLS | 顯示或修改文件的訪問控制列表(ACL) | |
CALL | 從另一個批處理程序調用這一個 | |
CD | 顯示當前目錄的名稱或將其更改 | |
CHCP | 顯示或設置活動代碼頁數 | |
CHDIR | 顯示當前目錄的名稱或將其更改 | |
CHKDSK | 檢查磁盤并顯示狀態報告 | |
CHKNTFS | 顯示或修改啟動時間磁盤檢查 | |
CLS | 清除屏幕 | * |
CMD | 打開另一個 Windows 命令解釋程序窗口 | * |
COLOR | 設置默認控制臺前景和背景顏色 | system("color 0B"); |
COMP | 比較兩個或兩套文件的內容 | |
COMPACT | 顯示或更改 NTFS 分區上文件的壓縮 | |
CONVERT | 將 FAT 卷轉換成 NTFS 你不能轉換當前驅動器 | |
COPY | 將至少一個文件復制到另一個位置 | |
DATE | 顯示或設置日期 |
system("date /T"); 后面加 /t 表示顯示日期 |
DEL | 刪除至少一個文件 | |
DIR | 顯示一個目錄中的文件和子目錄 | |
DISKPART | 顯示或配置磁盤分區屬性 | |
DOSKEY | 編輯命令行、撤回 Windows 命令并創建宏 | |
DRIVERQUERY | 顯示當前設備驅動程序狀態和屬性 | |
ECHO | 顯示消息,或將命令回顯打開或關閉 | |
ENDLOCAL | 結束批文件中環境更改的本地化 | |
ERASE | 刪除一個或多個文件 | * |
EXIT | 退出 CMD.EXE 程序(命令解釋程序) | * |
FC | 比較兩個文件或兩個文件集并顯示它們之間的不同 | * |
FIND | 在一個或多個文件中搜索一個文本字符串 | * |
FINDSTR | 在多個文件中搜索字符串 | * |
FOR | 為一組文件中的每個文件運行一個指定的命令 | |
FORMAT | 格式化磁盤,以便用于 Windows | |
FSUTIL | 顯示或配置文件系統屬性 | |
FTYPE | 顯示或修改在文件擴展名關聯中使用的文件類型 | |
GOTO | 將 Windows 命令解釋程序定向到批處理程序中某個帶標簽的行 | |
GPRESULT | 顯示計算機或用戶的組策略信息 | |
GRAFTABL | 使 Windows 在圖形模式下顯示擴展字符集 | * |
HELP | 獲取該表格的內容 | |
ICACLS | 顯示、修改、備份或還原文件和目錄的 ACL | |
IF | 在批處理程序中執行有條件的處理操作 | |
LABEL | 創建、更改或刪除磁盤的卷標 | |
MD | 創建一個目錄 | |
MKDIR | 創建一個目錄 | |
MKLINK | 創建符號鏈接和硬鏈接 | |
MODE | 查看與配置系統設備 | system(mode); |
MORE | 逐屏顯示輸出 | * |
MOVE | 將一個或多個文件從一個目錄移動到另一個目錄 | |
OPENFILES | 顯示遠程用戶為了文件共享而打開的文件 | |
PATH為 | 可執行文件顯示或設置搜索路徑 | |
PAUSE | 暫停批處理文件的處理并顯示消息 | |
POPD | 還原通過 PUSHD 保存的當前目錄的上一個值 | |
打印一個文本文件 | ||
PROMPT | 更改 Windows 命令提示 | |
PUSHD | 保存當前目錄,然后對其進行更改 | |
RD | 刪除目錄 | |
RECOVER | 從損壞的或有缺陷的磁盤中恢復可讀信息 | * |
REM | 記錄批處理文件或 CONFIG.SYS 中的注釋(批注) | |
REN | 重命名文件 | |
RENAME | 重命名文件 | |
REPLACE | 替換文件 | * |
RMDIR | 刪除目錄 | |
ROBOCOPY | 復制文件和目錄樹的高級實用工具 | |
SET | 顯示、設置或刪除 Windows 環境變量 | |
SETLOCAL | 開始本地化批處理文件中的環境更改 | |
SC | 顯示或配置服務(后臺進程) | |
SCHTASKS | 安排在一臺計算機上運行命令和程序 | |
SHIFT | 調整批處理文件中可替換參數的位置 | |
SHUTDOWN | 允許通過本地或遠程方式正確關閉計算機 |
system(“shutdown -s –t 60”)60秒后關機 system("shutdown -a");取消關機 system("shutdown -p");立即關閉 system("shutdown -1");注銷計算機 |
SORT | 對輸入排序 | |
START | 啟動單獨的窗口以運行指定的程序或命令 | |
SUBST | 將路徑與驅動器號關聯 | |
SYSTEMINFO | 顯示計算機的特定屬性和配置 | |
TASKLIST | 顯示包括服務在內的所有當前運行的任務 | |
TASKKILL | 中止或停止正在運行的進程或應用程序 | |
TIME | 顯示或設置系統時間 |
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窗口的尺寸將會變為40行100列的,cols最小值為13,lines最小值為1。在C語言中也可以通過system函數調用這個dos命令來實現這個功能。
示例二:
顯示代碼頁:
代碼頁,通俗的說就是DOS中顯示的語言。具體代碼頁可以查看代碼頁這個百科詞條。
比如,想讓DOS下顯示的語言為美式英語,則輸入mode con cp select=437
即可,輸出為:
color命令
system("color 02
"); 是表示黑背景、綠色前景
(即字的顏色).顏色屬性由兩個十六進制數字指定 -- 第一個為背景
,第二個則為前景
。每個數字可以為以下任何值之一
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函數使用方法詳解的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/qq_42591783/article/details/121685822