C语言 system函数
Windows函數(shù)
windows操作系統(tǒng)下system () 函數(shù)詳解(主要是在C語言中的應(yīng)用) 函數(shù)名: system功 能: 發(fā)出一個DOS命令用 法: int system(char *command);system函數(shù)已經(jīng)被收錄在標準c庫中,可以直接調(diào)用程序例:#include <stdlib.h>#include <stdio.h>int main(void){printf("About to spawn and run a DOS command\n");system("dir");return 0;}又如:system("pause")可以實現(xiàn)凍結(jié)屏幕,便于觀察程序的執(zhí)行結(jié)果;system("CLS")可以實現(xiàn)清屏操作。而調(diào)用color函數(shù)可以改變控制臺的前景色和背景,具體參數(shù)在下面說明。例如,用 system("color 0A"); 其中color后面的0是背景色代號,A是前景色代號。各顏色代碼如下:0=黑色 1=藍色 2=綠色 3=湖藍色 4=紅色 5=紫色 6=黃色 7=白色 8=灰色 9=淡藍色 A=淡綠色 B=淡淺綠色 C=淡紅色 D=淡紫色 E=淡黃色 F=亮白色ASSOC????顯示或修改文件擴展名關(guān)聯(lián)。AT???????計劃在計算機上運行的命令和程序。
ATTRIB???顯示或更改文件屬性。
BREAK????設(shè)置或清除擴展式?CTRL+C?檢查。
CACLS????顯示或修改文件的訪問控制列表(ACLs)。
CALL?????從另一個批處理程序調(diào)用這一個。
CD???????顯示當前目錄的名稱或?qū)⑵涓摹?br />CHCP?????顯示或設(shè)置活動代碼頁數(shù)。
CHDIR????顯示當前目錄的名稱或?qū)⑵涓摹?br />CHKDSK???檢查磁盤并顯示狀態(tài)報告。
CHKNTFS?顯示或修改啟動時間磁盤檢查。
CLS??????清除屏幕。
CMD??????打開另一個?Windows?命令解釋程序窗口。
COLOR????設(shè)置默認控制臺前景和背景顏色。
COMP?????比較兩個或兩套文件的內(nèi)容。
COMPACT?顯示或更改?NTFS?分區(qū)上文件的壓縮。
CONVERT?將?FAT?卷轉(zhuǎn)換成?NTFS。您不能轉(zhuǎn)換當前驅(qū)動器。
COPY?????將至少一個文件復(fù)制到另一個位置。
DATE?????顯示或設(shè)置日期。
DEL??????刪除至少一個文件。
DIR??????顯示一個目錄中的文件和子目錄。
DISKCOMP?比較兩個軟盤的內(nèi)容。
DISKCOPY?將一個軟盤的內(nèi)容復(fù)制到另一個軟盤。
DOSKEY???編輯命令行、調(diào)用?Windows?命令并創(chuàng)建宏。
ECHO?????顯示消息,或?qū)⒚罨仫@打開或關(guān)上。
ENDLOCAL?結(jié)束批文件中環(huán)境更改的本地化。
ERASE????刪除至少一個文件。
EXIT?????退出?CMD.EXE?程序(命令解釋程序)。
FC???????比較兩個或兩套文件,并顯示不同處。
FIND?????在文件中搜索文字字符串。
FINDSTR?在文件中搜索字符串。
FOR??????為一套文件中的每個文件運行一個指定的命令
FORMAT???格式化磁盤,以便跟?Windows?使用。
FTYPE????顯示或修改用于文件擴展名關(guān)聯(lián)的文件類型。
GOTO?????將?Windows?命令解釋程序指向批處理程序中某個標明的行。
GRAFTABL?啟用?Windows?來以圖像模式顯示擴展字符集。
HELP?????提供?Windows?命令的幫助信息。
IF???????執(zhí)行批處理程序中的條件性處理。
LABEL????創(chuàng)建、更改或刪除磁盤的卷標。
MD???????創(chuàng)建目錄。
MKDIR????創(chuàng)建目錄。
MODE?????配置系統(tǒng)設(shè)備。
MORE?????一次顯示一個結(jié)果屏幕。
MOVE?????將文件從一個目錄移到另一個目錄。
PATH?????顯示或設(shè)置可執(zhí)行文件的搜索路徑。
PAUSE????暫停批文件的處理并顯示消息。
POPD?????還原?PUSHD?保存的當前目錄的上一個值。
PRINT????打印文本文件。
PROMPT???更改?Windows?命令提示符。
PUSHD????保存當前目錄,然后對其進行更改。
RD???????刪除目錄。
RECOVER?從有問題的磁盤恢復(fù)可讀信息。
REM??????記錄批文件或?CONFIG.SYS?中的注釋。
REN??????重命名文件。
RENAME???重命名文件。
REPLACE?替換文件。
RMDIR????刪除目錄。
SET??????顯示、設(shè)置或刪除?Windows?環(huán)境變量。
SETLOCAL?開始批文件中環(huán)境更改的本地化。
SHIFT????更換批文件中可替換參數(shù)的位置。
SORT?????對輸入進行分類。
START????啟動另一個窗口來運行指定的程序或命令。
SUBST????將路徑跟一個驅(qū)動器號關(guān)聯(lián)。
TIME?????顯示或設(shè)置系統(tǒng)時間。
TITLE????設(shè)置?CMD.EXE?會話的窗口標題。
TREE?????以圖形模式顯示驅(qū)動器或路徑的目錄結(jié)構(gòu)。
TYPE?????顯示文本文件的內(nèi)容。
VER??????顯示?Windows?版本。
VERIFY???告訴?Windows?是否驗證文件是否已正確寫入磁盤。
VOL??????顯示磁盤卷標和序列號。
XCOPY????復(fù)制文件和目錄樹。
(注意:Microsoft Visual C++6.0 支持system)舉例看了下面實例,相信你會對學到更多system在C程序設(shè)計中的應(yīng)用。例一:C語言調(diào)用DOS命令實現(xiàn)定時關(guān)機:#include<stdio.h>#include<string.h>#include<stdlib.h>int print(){printf(" ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n");printf("╔═══╧╧C語言關(guān)機程序 ╧╧═══╗\n");printf("║※1.實現(xiàn)10分鐘內(nèi)的定時關(guān)閉計算機 ║\n");printf("║※2.立即關(guān)閉計算機 ║\n");printf("║※3.注銷計算機 ║\n");printf("║※0.退出系統(tǒng) ║\n");printf("╚═══════════════════╝\n");return 0;}void main(){system("title C語言關(guān)機程序");//設(shè)置cmd窗口標題system("mode con cols=48 lines=25");//窗口寬度高度system("color 0B");system("date /T");system("TIME /T");char cmd[20]="shutdown -s -t ";char t[5]="0";print();int c;scanf("%d",&c);getchar();switch(c){case 1:printf("您想在多少秒后自動關(guān)閉計算機?(0~600)\n");scanf("%s",t);system(strcat(cmd,t));break;case 2:system("shutdown -p");break;case 3:system("shutdown -l");break;case 0:break;default:printf("Error!\n");}system("pause");exit(0);}例二:用C語言刪除文件,例如文件的位置是d:\123.txt用system()函數(shù)執(zhí)行windows命令。#include <stdlib.h>#include <stdio.h>int main(void){system("del d:\123.txt");return 0;}
Linux/Unix函數(shù)
函數(shù)詳解(執(zhí)行shell 命令)相關(guān)函數(shù)fork,execve,waitpid,popen表頭文件#include<stdlib.h>定義函數(shù)int system(const char * string);函數(shù)說明system()會調(diào)用fork()產(chǎn)生子進程,由子進程來調(diào)用/bin/sh-c string來執(zhí)行參數(shù)string字符串所代表的命令,此命令執(zhí)行完后隨即返回原調(diào)用的進程。在調(diào)用system()期間SIGCHLD 信號會被暫時擱置,SIGINT和SIGQUIT 信號則會被忽略。返回值如果fork()失敗 返回-1:出現(xiàn)錯誤如果exec()失敗,表示不能執(zhí)行Shell,返回值相當于Shell執(zhí)行了exit(127)如果執(zhí)行成功則返回子Shell的終止狀態(tài)如果system()在調(diào)用/bin/sh時失敗則返回127,其他失敗原因返回-1。若參數(shù)string為空指針(NULL),則返回非零值>;。如果system()調(diào)用成功則最后會返回執(zhí)行shell命令后的返回值,但是此返回值也有可能為 system()調(diào)用/bin/sh失敗所返回的127,因此最好能再檢查errno 來確認執(zhí)行成功。附加說明在編寫具有SUID/SGID權(quán)限的程序時請勿使用system(),system()會繼承環(huán)境變量,通過環(huán)境變量可能會造成系統(tǒng)安全的問題。范例#i nclude<stdlib.h>main(){system(“l(fā)s -al /etc/passwd /etc/shadow”);}執(zhí)行結(jié)果:-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd-r--------- 1 root root 572 Sep 2 15 :34 /etc/shado例2:char tmp[];sprintf(tmp,"/bin/mount -t vfat %s /mnt/usb",dev);system(tmp);其中dev是/dev/sda1.與exec的區(qū)別1、system()和exec()都可以執(zhí)行進程外的命令,system是在原進程上開辟了一個新的進程,但是exec是用新進程(命令)覆蓋了原有的進程2、system()和exec()都有能產(chǎn)生返回值,system的返回值并不影響原有進程,但是exec的返回值影響了原進程具體例:效果如下:int main(){?system("mode con cols=50 lines=25");//窗口寬度高度?//indicate ten number,black background?for(int i=0;i<10;i++)??printf("第%2d個數(shù)字是:%d\n",i+1,i);?//system pause untill some key was pressed?system("pause");?//console clear the screen?system("cls");?//console font color be change 02,BLUE?system("COLOR 02");??for(int j=0;j<10;j++)??printf("第%d個符號是:%c\n",j+1,(char)(63+j));?system("pause");?//?system("VOL");?system("pause");?return 0;}???????????
再分享一下我老師大神的人工智能教程吧。零基礎(chǔ)!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們?nèi)斯ぶ悄艿年犖橹衼?#xff01;https://blog.csdn.net/jiangjunshow
總結(jié)
以上是生活随笔為你收集整理的C语言 system函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c盘users的用户名怎么改_怎么修改i
- 下一篇: Shopee跨境电商开店高频问题解答