文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言system函数使用方法详解

2024-04-02 19:55

关注

函数接口


_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 保存的当前目录的上一个值
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”)起作用

到此这篇关于C语言system函数使用方法详解的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯