System函式
int system( const char *command );
int _wsystem( const wchar_t *command );
command: Command to be executed
sample:
//system.c
#include <process.h>
void main( void )
{
system( "type system.c" );
}
system函式 是可以呼叫一些DOS命令,比如
system("cls");//清屏,等於在DOS上使用cls命令
下面列出常用的DOS命令,都可以用system函式呼叫:
ASSOC 顯示或修改副檔名關聯。
AT 計劃在計算機上執行的命令和程式。
ATTRIB 顯示或更改檔案屬性。
BREAK 設定或清除擴充套件式 CTRL+C 檢查。
CACLS 顯示或修改檔案的訪問控制列表(ACLs)。
CALL 從另一個批處理程式呼叫這一個。
CD 顯示當前目錄的名稱或將其更改。
CHCP 顯示或設定活動內碼表數。
CHDIR 顯示當前目錄的名稱或將其更改。
CHKDSK 檢查磁碟並顯示狀態報告。
CHKNTFS 顯示或修改啟動時間磁碟檢查。
CLS 清除螢幕。
CMD 開啟另一個 Windows 命令解釋程式視窗。
COLOR 設定預設控制檯前景和背景顏色。
COMP 比較兩個或兩套檔案的內容。
COMPACT 顯示或更改 NTFS 分割槽上檔案的壓縮。
CONVERT 將 FAT 卷轉換成 NTFS。您不能轉換當前驅動器。
COPY 將至少一個檔案複製到另一個位置。
DATE 顯示或設定日期。
DEL 刪除至少一個檔案。
DIR 顯示一個目錄中的檔案和子目錄。
DISKCOMP 比較兩個軟盤的內容。
DISKCOPY 將一個軟盤的內容複製到另一個軟盤。
DOSKEY 編輯命令列、呼叫 Windows 命令並建立巨集。
ECHO 顯示訊息,或將命令回顯開啟或關上。
ENDLOCAL 結束批檔案中環境更改的本地化。
ERASE 刪除至少一個檔案。
EXIT 退出 CMD.EXE 程式(命令解釋程式)。
FC 比較兩個或兩套檔案,並顯示不同處。
FIND 在檔案中搜尋文字字串。
FINDSTR 在檔案中搜尋字串。
FOR 為一套檔案中的每個檔案執行一個指定的命令
FORMAT 格式化磁碟,以便跟 Windows 使用。
FTYPE 顯示或修改用於副檔名關聯的檔案型別。
GOTO 將 Windows 命令解釋程式指向批處理程式中某個標明的行。
GRAFTABL 啟用 Windows 來以影象模式顯示擴充套件字符集。
HELP 提供 Windows 命令的幫助資訊。
IF 執行批處理程式中的條件性處理。
LABEL 建立、更改或刪除磁碟的卷標。
MD 建立目錄。
MKDIR 建立目錄。
MODE 配置系統裝置。
MORE 一次顯示一個結果螢幕。
MOVE 將檔案從一個目錄移到另一個目錄。
PATH 顯示或設定可執行檔案的搜尋路徑。
PAUSE 暫停批檔案的處理並顯示訊息。
POPD 還原 PUSHD 儲存的當前目錄的上一個值。
PRINT 列印文字檔案。
PROMPT 更改 Windows 命令提示符。
PUSHD 儲存當前目錄,然後對其進行更改。
RD 刪除目錄。
RECOVER 從有問題的磁碟恢復可讀資訊。
REM 記錄批檔案或 CONFIG.SYS 中的註釋。
REN 重新命名檔案。
RENAME 重新命名檔案。
REPLACE 替換檔案。
RMDIR 刪除目錄。
SET 顯示、設定或刪除 Windows 環境變數。
SETLOCAL 開始批檔案中環境更改的本地化。
SHIFT 更換批檔案中可替換引數的位置。
SORT 對輸入進行分類。
START 啟動另一個視窗來執行指定的程式或命令。
SUBST 將路徑跟一個驅動器號關聯。
TIME 顯示或設定系統時間。
TITLE 設定 CMD.EXE 會話的視窗標題。
TREE 以圖形模式顯示驅動器或路徑的目錄結構。
TYPE 顯示文字檔案的內容。
VER 顯示 Windows 版本。
VERIFY 告訴 Windows 是否驗證檔案是否已正確寫入磁碟。
VOL 顯示磁碟卷標和序列號。
XCOPY 複製檔案和目錄樹。
system(執行shell 命令)
相關函式 fork,execve,waitpid,popen
表標頭檔案 #include<stdlib.h>
定義函式 int system(const char * string);
函式說明 system()會呼叫fork()產生子程式,由子程式來呼叫/bin/sh-c string來執行引數string字串所代表的命令,此命令執行完後隨即返回原呼叫的程式。在呼叫system()期間SIGCHLD 訊號會被暫時擱置,SIGINT和SIGQUIT 訊號則會被忽略。
返回值 如果system()在呼叫/bin/sh時失敗則返回127,其他失敗原因返回-1。若引數string為空指標(NULL),則返回非零值。如果system()呼叫成功則最後會返回執行shell命令後的返回值,但是此返回值也有可能為system()呼叫/bin/sh失敗所返回的127,因此最好能再檢查errno 來確認執行成功。
附加說明 在編寫具有SUID/SGID許可權的程式時請勿使用system(),system()會繼承環境變數,通過環境變數可能會造成系統安全的問題。
範例
#include<stdlib.h>
main()
{
system(“ls -al /etc/passwd /etc/shadow”);
}
原文地址:http://wenku.baidu.com/view/654e9fd149649b6648d747c9.html
相關文章
- System.Length 函式函式
- system自動關機函式函式
- PHP exec system passthru系統函式PHP函式
- 關於linux下system()函式的總結Linux函式
- 對於linux下system()函式的深度理解(整理)Linux函式
- 實現system函式功能(shell命令執行情況判斷)函式
- fork 和 vfork 使用的注意事項和 system() 函式的替代函式
- linux系統程式設計之程式(七):system()函式使用Linux程式設計函式
- system函式 路徑有多個雙引號,無法呼叫成功函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- 【函式式 Swift】函式式思想函式Swift
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- 【函式】Oracle函式系列(2)--數學函式及日期函式函式Oracle
- Python 擴充之特殊函式(lambda 函式,map 函式,filter 函式,reduce 函式)Python函式Filter
- c#使用系統函式System.Shell.Folder.copyHere解壓.zip檔案C#函式
- 第7章 IF函式 COUNTIF函式 SUMIF函式函式
- 字元函式、數字函式和日期函式字元函式
- 【函式】Oracle EXTRACT()函式與to_char() 函式函式Oracle
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- 【函式】ORACLE函式大全函式Oracle
- (譯) 函式式 JS #2: 函式!函式JS
- 核函式 多項式核函式 高斯核函式(常用)函式
- 函式名/函式地址/函式指標函式指標
- 多程式函式系列fork(), wait(), exec()系列,system(), posix_spawn()例項詳解函式AI
- 第 8 節:函式-匿名函式、遞迴函式函式遞迴
- lambda匿名函式sorted排序函式filter過濾函式map對映函式函式排序Filter
- js函式 函式自呼叫 返回函式的函式 (閉包)JS函式
- main函式的入口函式AI函式
- (函式)實現strstr函式函式
- 字串函式之Strtok()函式字串函式
- SQL函式之日期函式SQL函式
- Oracle聚合函式/分析函式Oracle函式
- fork函式與vfork函式函式
- 常用函式--時間函式函式
- ORACLE單行函式與多行函式之七:多行函式之分組函式示例Oracle函式
- 函式式JavaScript(4):函式柯里化函式JavaScript
- 箭頭函式、簡寫函式、普通函式的區別函式