system()函数

简介: system()函数

 函数原型

包含在头文件 “stdlib.h” 中

int system(const char * command)

image.gif

函数功能

执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名。另,在windows系统下参数字符串不区分大小写。

说明:在windows系统中,system函数直接在控制台调用一个command命令。

在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程。

函数返回值

命令执行成功返回0,执行失败返回-1。

举个栗子

实现关机小程序

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void)
{
    char input[100];
    system("shutdown -s -t 60");
    //这是Windows系统下的一个关机命令
    flag:
    printf("你的电脑将在一分钟后关机,如果输入“我是猪”,就会取消关机!\n请输入: ");
    scanf("%s",input);
    if(0==strcmp(input,"我是猪"))
    {
        system("shutdown -a");//取消关机命令
    }
    else
    {
        goto flag;
    }
    return 0;
}

image.gif

附录

一些system()函数的参数及实现的功能

表格里的内容可以通过

system(“HELP”);语句获取。

ASSOC    显示或修改文件扩展名关联    

ATTRIB    显示或更改文件属性    

BREAK    设置或清除扩展式 CTRL+C 检查    

BCDEDIT    设置启动数据库中的属性以控制启动加载    

CACLS    显示或修改文件的访问控制列表(ACL)    

CALL    从另一个批处理程序调用这一个    

CD    显示当前目录的名称或将其更改    

CHCP    显示或设置活动代码页数    

CHDIR    显示当前目录的名称或将其更改    

CHKDSK    检查磁盘并显示状态报告    

CHKNTFS    显示或修改启动时间磁盘检查    

CLS    清除屏幕    *

CMD    打开另一个 Windows 命令解释程序窗口    *

COLOR    设置默认控制台前景和背景颜色    *

COMP    比较两个或两套文件的内容    

COMPACT    显示或更改 NTFS 分区上文件的压缩    

CONVERT    将 FAT 卷转换成 NTFS 你不能转换当前驱动器    

COPY    将至少一个文件复制到另一个位置    

DATE    显示或设置日期    后面加 /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    提供 Windows 命令的帮助信息    

ICACLS    显示、修改、备份或还原文件和目录的 ACL    

IF    在批处理程序中执行有条件的处理操作    

LABEL    创建、更改或删除磁盘的卷标    

MD    创建一个目录    

MKDIR    创建一个目录    

MKLINK    创建符号链接和硬链接    

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    允许通过本地或远程方式正确关闭计算机    

SORT    对输入排序    

START    启动单独的窗口以运行指定的程序或命令    

SUBST    将路径与驱动器号关联    

SYSTEMINFO    显示计算机的特定属性和配置    

TASKLIST    显示包括服务在内的所有当前运行的任务    

TASKKILL    中止或停止正在运行的进程或应用程序    

TIME    显示或设置系统时间    后面加 /t 表示显示时间

TITLE    设置 CMD.EXE 会话的窗口标题    “TITLE 你想改成啥”

TREE    以图形方式显示驱动程序或路径的目录结构    “TREE D:”

TYPE    显示文本文件的内容    “TYPE D:\\文本.txt”

VER    显示 Windows 的版本    

VERIFY    告诉 Windows 是否进行验证,以确保文件正确写入磁盘    

VOL    显示磁盘卷标和序列号    

XCOPY    复制文件和目录树    

WMIC    在交互式命令 shell 中显示 WMI 信息


相关文章
|
Linux C++
通过C/C++代码设置Linux系统时间的方法与实例
Linux系统中的时间设置是关键任务之一,涉及日志记录、数据同步等众多应用场景。本文将详细介绍如何通过C/C++代码设置Linux系统时间,包括调用系统调用和使用第三方库,同时提供实例演示。
2612 2
|
存储 开发框架 开发者
QT C++焦点事件:多角度解析实用技巧与方法
QT C++焦点事件:多角度解析实用技巧与方法
2487 0
|
缓存 Android开发
Android - 手机下载的缓存视频在文件管理怎么找不到?
Android - 手机下载的缓存视频在文件管理怎么找不到?
2209 0
Android - 手机下载的缓存视频在文件管理怎么找不到?
|
计算机视觉
AutoCAD *.dxf文件解析,使用dxflib搞定polyline/spline/ellipse等复杂图形(★firecat推荐★)
AutoCAD *.dxf文件解析,使用dxflib搞定polyline/spline/ellipse等复杂图形(★firecat推荐★)
2586 0
AutoCAD *.dxf文件解析,使用dxflib搞定polyline/spline/ellipse等复杂图形(★firecat推荐★)
|
存储 SQL 大数据
矢量数据库与传统数据库的对比:优势与挑战
【4月更文挑战第30天】矢量数据库与传统数据库对比:矢量数据库擅长处理高维数据和相似性搜索,适用于AI及大数据场景,但技术复杂度高,集成与数据迁移具挑战;传统数据库成熟稳定,简单易用且支持广泛,但在处理非结构化数据上不足。选择需依据具体业务需求。
|
11月前
|
存储 机器学习/深度学习 搜索推荐
去中心化的模型训练
去中心化的模型训练(Decentralized Model Training)是一种不依赖单一中心服务器或数据存储中心,而是在多个节点(如设备或数据拥有者)上进行联合训练的方法。这种训练模式可以更好地保护数据隐私、降低数据传输成本,并提升模型的鲁棒性和可扩展性。随着数据安全和隐私保护需求的提升,去中心化训练在深度学习和人工智能应用中的重要性逐渐增加。
313 4
|
数据采集 机器学习/深度学习 Rust
使用Rust进行线性回归的简单案例
使用Rust进行线性回归的简单案例
291 9
|
XML 搜索推荐 Java
Elasticsearch集成到Spring Boot项目
将Elasticsearch集成到Spring Boot项目中,可以方便地实现数据的搜索、分析等功能。
546 2
|
消息中间件 存储 Ubuntu
简单记录一下常规安装 RabbitMQ 的方法步骤
这篇文章详细介绍了在本地环境下安装和配置RabbitMQ消息队列的过程,包括RabbitMQ的基本概念、安装步骤、不同模式的特点以及在Linux和Windows系统下的安装方法。
843 0
|
存储 Java 数据库
【微服务系列笔记】微服务概述
本文对比了单体应用和微服务架构。单体应用中所有功能模块在一个工程中,而微服务则按领域模型拆分为独立服务,每个服务有明确边界,可独立开发、部署和扩展。微服务允许使用不同语言和技术栈,每个服务有自己的数据库。微服务架构的优点包括易于开发维护、技术栈开放和错误隔离,但缺点包括增加运维成本、调用链路复杂、分布式事务处理困难以及学习成本高。实现微服务通常涉及SpringCloud等开发框架和Docker等运行平台。
272 2