使用system函数调用DOS命令详解
需积分: 10 97 浏览量
更新于2024-09-13
收藏 5KB TXT 举报
"stytem函数.txt"
`system` 函数是C语言标准库中的一个函数,主要用于调用操作系统命令,特别是在Windows系统中,它可以执行DOS命令。通过`system()`函数,开发者可以在程序中实现与命令行交互的功能,增强程序的灵活性。
### system函数的使用方法
`system()`函数的原型定义如下:
```c
int system(const char* command);
```
其中,`command`参数是一个字符串,包含了要执行的DOS命令。函数返回值为整型,如果命令成功执行,一般返回0;若出现错误或命令被终止,返回非0值。
例如,调用`system("cls")`将清空当前的命令行窗口,相当于在DOS中输入`cls`命令。其他常见的DOS命令,如`dir`、`copy`、`del`等,也可以通过`system()`来执行。
### 常见的DOS命令
- `ASSOC`: 显示或修改文件扩展名关联。
- `AT`: 计划在特定时间运行命令或程序。
- `ATTRIB`: 显示或更改文件属性。
- `BREAK`: 设置或清除扩展式 CTRL+C 检查。
- `CACLS`: 显示或修改文件的访问控制列表(ACLs)。
- `CALL`: 在批处理程序中调用另一个批处理程序。
- `CD/CHDIR`: 改变当前目录。
- `CHCP`: 显示或设置活动代码页号。
- `CHKDSK`: 检查磁盘并显示状态报告。
- `CHKNTFS`: 显示或更改chkntfs工具的启动时间检查。
- `CLS`: 清除命令提示符窗口。
- `CMD`: 打开一个新的命令提示符窗口。
- `COLOR`: 设置命令提示符窗口的颜色。
- `COMP`: 比较两个文件或两组文件。
- `COMPACT`: 显示或更改NTFS分区上的文件压缩。
- `CONVERT`: 将FAT卷转换为NTFS卷。
- `COPY`: 复制文件到另一个位置。
- `DATE`: 显示或设置日期。
- `DEL/Erase`: 删除文件。
- `DIR`: 显示目录中的文件和子目录。
- `DISKCOMP`: 比较两个软盘的扇区。
- `DISKCOPY`: 复制一个磁盘的所有扇区到另一个磁盘。
- `DOSKEY`: 重新定义命令行历史记录,用于创建宏。
- `ECHO`: 显示消息,或控制命令提示符的回显状态。
- `ENDLOCAL`: 结束局部环境的设置。
- `ERASE`: 删除一个或多个文件。
- `EXIT`: 退出cmd.exe(命令提示符)。
- `FC`: 比较两个或两组文件,并显示差异。
- `FIND`: 在文件中搜索文字字符串。
- `FINDSTR`: 在文件中搜索字符串,支持正则表达式。
- `FOR`: 为每个文件执行一个命令。
- `FORMAT`: 格式化磁盘,准备新的文件系统。
- `FTYPE`: 显示或修改文件类型关联。
- `GOTO`: 在批处理程序中转到标记。
- `GRAFTABL`: 启用或禁用Windows的图形字符集显示。
- `HELP`: 提供有关命令的联机帮助。
- `IF`: 进行条件性执行。
- `LABEL`: 创建、更改或删除磁盘的卷标。
- `MD/MKDIR`: 创建目录。
- `MODE`: 配置系统设备。
- `MORE`: 分页显示文本文件内容。
- `MOVE`: 移动文件,并可更改其目录。
- `PATH`: 显示或设置可执行文件的搜索路径。
- `PAUSE`: 暂停批处理程序,显示"按任意键继续..."。
- `POPD`: 从堆栈中弹出一个目录,返回到之前的状态。
- `PUSHD`: 将当前目录推入堆栈,并更改为指定的目录。
- `RD/RMDIR`: 删除目录。
- `RECOVER`: 从坏扇区中恢复文件。
- `REM`: 在批处理程序中添加注释。
- `REN/Rename`: 重命名文件。
- `REPLACE`: 替换文件中的内容。
- `RMDIR`: 删除目录。
- `SET`: 显示、设置或删除环境变量。
- `SETLOCAL`: 开始局部环境设置。
- `SHIFT`: 重新分配命令行参数的位置。
- `SORT`: 对输入进行排序。
- `START`: 在新窗口中启动应用程序或命令。
- `SUBST`: 将驱动器号映射到路径。
- `TIME`: 显示或设置系统时间。
- `TITLE`: 设置cmd.exe窗口标题。
- `TREE`: 以图形方式显示目录结构。
- `TYPE`: 显示文本文件的内容。
- `VER`: 显示Windows版本信息。
- `VERIFY`: 要求系统验证文件是否已正确写入磁盘。
- `VOL`: 显示磁盘的卷标和序列号。
- `XCOPY`: 复制文件和目录树,具有多种选项。
### 示例代码
```c
#include <stdlib.h>
#include <stdio.h>
int main(void) {
printf("About to spawn 'dir' command using system()...\n");
system("dir"); // 执行dir命令,列出当前目录下的内容
return 0;
}
```
这段代码将在控制台打印一条消息,然后调用`system()`执行`dir`命令,显示出当前目录下的文件和子目录。
请注意,`system()`函数可能会有安全风险,因为它允许执行任意命令。因此,在实际编程中需谨慎使用,避免执行不受信任的用户输入作为命令。
2019-09-11 上传
2024-09-25 上传
2024-11-21 上传
2023-05-30 上传
2023-07-15 上传
2023-06-03 上传
2023-07-09 上传
「已注销」
- 粉丝: 19
- 资源: 8
最新资源
- ASP网上花店设计与实现(论文+源代码).zip
- torch_scatter-2.0.7-cp36-cp36m-win_amd64whl.zip
- gohangout-output-cls
- ssl_opt:优化的matlab代码,用于在半监督学习中使用Laplace Beltrami算子特征函数来计算Laplacian特征向量
- 用于Flutter Widgets的JSON动态Widget Runtime。-JavaScript开发
- Clock by-Shantanu-crx插件
- PyPI 官网下载 | cdk-lambda-extensions-0.1.68.tar.gz
- TugasRestoranNetbean
- esp-walkie-talkie:用于基于ESP8266的对讲机无线电的软件(运行不正常)
- torch_sparse-0.6.11-cp36-cp36m-win_amd64whl.zip
- 802.11n_channel.rar_matlab例程_matlab_
- angular_todo:简单的待办事项清单示例,以熟悉Angular 2.0
- CassandraPerformanceMeasure:我几年前创建的原始开源项目的分支
- 拖动切换按钮Button效果
- Wr Playwright-使用Playwright进行智能,自动化和快速的跨浏览器测试!-JavaScript开发
- refactoringjsbook