函数接口
_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。
测试代码
/* 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 保存的当前目录的上一个值 |
|
PRINT |
打印一个文本文件 |
|
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”)
起作用