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

目录
  • 函数接口
  • 作用
  • 返回值
  • 测试代码
  • 参数
    • MODE命令
    • color命令

函数接口

_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”)起作用

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

(0)

相关推荐

  • 简述C语言中system()函数与vfork()函数的使用方法

    C语言system()函数:执行shell命令 头文件: #include <stdlib.h> 定义函数: int system(const char * string); 函数说明:system()会调用fork()产生子进程, 由子进程来调用/bin/sh-c string 来执行参数string 字符串所代表的命令, 此命令执行完后随即返回原调用的进程. 在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT 和SIGQUIT 信号则会被忽略. 返回值: 1.如果 s

  • C语言利用system调用系统命令行详情

    system,顾名思义,就是调用系统命令行,输入为字符串,然后把这个字符串输出给命令行,让命令行执行. 为了测试其特性,可以做一个小程序: //system.c #include<stdlib.h> #include<stdio.h> #include<string.h> int main(){     char cmd[100];     while(1){         printf("input code: ");         gets(

  • C语言system 自动关机函数代码

    ime_t t; time(&t); 函数名称: time 函数原型: time_t time(time_t *timer) 函数功能: 得到机器的日历时间或者设置日历时间 函数返回: 机器日历时间 参数说明: timer=NULL时得到机器日历时间,timer=时间数值时,用于设置日历时间,time_t是一个long类型 所属文件: <time.h> #include <time.h> #include <stdio.h> #include <dos.h

  • C语言中system()函数的用法总结

    system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码: 复制代码 代码如下: #include <sys/types.h>#include <sys/wait.h>#include <errno.h>#include <unistd.h> int system(const char * cmdstring){    pid_t pid;    int status; if(cmdstring == NULL){  

  • C语言之system函数案例详解

    来看看在windows操作系统下system () 函数详解(主要是在C语言中的应用) 注意:在windows下的system函数中命令可以不区别大小写! 函数名: system 功 能: 发出一个DOS命令 用 法: int system(char *command); system函数已经被收录在标准c库中,可以直接调用. 例如: #include<stdio.h> #include<stdlib.h> int main() { printf("About to sp

  • C语言中system()执行cmd命令打开关闭程序的方法

    函数原型: int system(char *command); 使用该函数需要添加<stdlib.h>头文件 1.打开程序 系统自带程序可直接使用start命令 system("start iexplore.exe"); //启动ie 非系统自带程序需要加入路径 system("start D:\Tencent\WeChat\WeChat.exe"); //启动改路径下的客户端 注意如果路径中有空格,需要对整个路径添加双引号 2.关闭程序 system

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

    目录 函数接口 作用 返回值 测试代码 参数 MODE命令 color命令 函数接口 _DCRTIMP int __cdecl system( _In_opt_z_ char const* _Command ); system函数已经被收录在标准c库中,头文件为<stdlib.h> 作用 执行系统命令调用命令处理器来执行命令. 如果命令是空指针,则该函数只检查是否有命令处理器可以被此函数使用. 命令非空则调用命令的效果取决于系统和库的实现,并可能导致程序以非标准的方式运行或终止. 补充: 执行

  • C语言memset函数使用方法详解

    C语言memset函数使用方法详解 一.函数原形   void *  memset(void*s, int ch,size_t n) 二.函数作用  将以s内存地址为首的连续n个字节的内容置成ch,一般用来对大量结构体和数组进行清零 三.常见错误 1.搞反了 ch 和 n的位置 对char[20]清零,一定是 memset(a,0,20); 2.过度使用memset 3.其实这个错误严格来讲不能算用错memset,但是它经常在使用memset的场合出现 int fun(strucy someth

  • C语言qsort函数使用方法详解

    目录 1.qsort函数 1.1qsort函数功能 1.2参数介绍 2.qsort函数功能测试 3.冒泡排序思想模拟实现qsort 1.qsort函数 void qsort (void* base, size_t num, size_t size, int (compar)(const void,const void*)); 1.1qsort函数功能 可以排序任何数据类型 对 所指向的数组元素进行排,使用函数确定顺序. 此函数使用的排序算法通过调用指定函数并指向元素的指针作为参数来比较元素. 该

  • Go语言HttpRouter路由使用方法详解

    HttpRouter是一个轻量级但却非常高效的multiplexer.手册: https://godoc.org/github.com/julienschmidt/httprouter https://github.com/julienschmidt/httprouter 用法示例 package main import ( "fmt" "github.com/julienschmidt/httprouter" "net/http" "

  • C语言 操作符#与##使用方法详解

    目录 一.# 运算符 二.## 运算符 三.小结 一.# 运算符 # 运算符用于在预处理期将宏参数转换为字符串 # 的转换作用是在预处理期完成的,因此只在宏定义中有效 编译器不知道 # 的转换作用 用法: #define STRING(x) #x printf("%s\n",STRING(Hello World!)); 下面通过一个示例感受一下: test.c: #include <stdio.h> #define STRING(x) #x int main() { pri

  • C语言实现面向对象的方法详解

    目录 1.引言 2.封装 3.继承 4.多态 4.1 虚表和虚指针 4.2 在构造函数中设置vptr 4.3 继承 vtbl 和 重载 vptr 4.4 虚函数调用 4.5 main.c 5.总结 1.引言 面向对象编程(OOP)并不是一种特定的语言或者工具,它只是一种设计方法.设计思想.它表现出来的三个最基本的特性就是封装.继承与多态.很多面向对象的编程语言已经包含这三个特性了,例如 Smalltalk.C++.Java.但是你也可以用几乎所有的编程语言来实现面向对象编程,例如 ANSI-C.

  • C++中可以接受任意多个参数的函数定义方法(详解)

    能够接受任意多个参数的函数,可以利用重载来实现.这种函数的执行过程类似于递归调用,所以必须要有递归终止条件. #include <iostream> #include <bitset> void print() {} // 递归终止条件.这是必需的. template<typename Type, typename... Types> void print(const Type& arg, const Types&... args) { std::cou

  • 在一个页面重复使用一个js函数的方法详解

    1.给每个拥有相同行为的问题DOM节点一个相同的class类,如question,同时给不同的问题一个不同的标识ID如 id="question1" id="question2"...诸如此. 2.给类.question绑定点击事件,在触发函数里面先判断当前点击的这个类的id,即可知道你要操作的是哪一个问题,然后调用你的那个伸缩函数即可. <!DOCTYPE html> <html> <head lang="en"&

  • 对Python实现累加函数的方法详解

    这个需求比较奇怪,要求实现Sum和MagaSum函数,实现以下功能 Sum(1) =>1 Sum(1,2,3) =>6 MegaSum(1)() =>1 MegaSum(1)(2)(3)() =>6 实际上Sum就是Python自建的sum函数,它支持变参,变参怎么实现,自然是*args,所以很容易写出雏形: Sum def Sum(*args): count = 0 for i in args: count+=i return count 第二个函数就有点皮了,它要求有参数的时候

  • 如何在 clion 运行多个 main 函数(方法详解)

    在写 C++ 的题目的时候经常会遇到这样的问题,写了多个 cpp 文件,在 clion 中编译报错不能同时存在多 main 函数 这里写了一个小程序优雅地解决这个问,非常简单,就是就是读字符串写文件 直接修改一下 CMake 自动遍历文件即可 多个 main 函数的报错 在 clion 中写完一题,想写下一题,结果发现 main 函数不能运行 正确的解决方法 在牛客用户AAnonymous的告知下,借鉴了他的 github 上的CMakeLists.txt,直接修改 CMakeLists.txt

随机推荐