函数接口
_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。
测试代码
#include <stdio.h>
#include <stdlib.h>
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函数使用方法详解的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。