C语言system函数实战:调用DOS命令的完整指南

白榆
白榆
发布时间:2026-10-16| 4人浏览过
原创

system函数允许C程序直接执行操作系统外壳命令。在Windows环境下,该函数常用于控制Dos窗口样式、执行定时任务或清理文件。下文提供从基础用法到复杂菜单控制的实战代码。

system函数原理与基础准备

system函数包含在标准C库中(<stdlib.h>),其作用是向操作系统发起一个DOS命令请求。在Windows平台下,函数名不区分大小写。其基本原型为:

int system(char *command);

返回值通常为命令执行的退出码。调用前需确保目标路径或文件名符合安全规范,避免路径注入风险。

第1步:控制台显示效果优化

在执行命令时,可通过color参数调整控制台外观,便于调试或增强交互体验。

  • 目的:改变前景与背景色。
  • 入口:system("color XY") 格式,X为背景色代号,Y为前景色代号。
  • 关键参数映射:
  • 0=黑色, 1=蓝色, 2=绿色, 3=湖蓝, 4=红色, 5=紫色, 6=黄色, 7=白色
  • 8=灰色, 9=淡蓝, A=淡绿, B=淡浅绿, C=淡红, D=淡紫, E=淡黄, F=亮白

示例操作:

system("color 0A"); // 黑底绿字

完成状态:终端文字颜色即刻更新为新组合。

第2步:实现交互式定时关机程序

利用 shutdown -s -t <秒数> 可实现倒计时关机,配合 shutdown -a 可取消该操作。

操作步骤与代码逻辑:

  1. 定义接收用户输入的字符数组。
  2. 使用 goto 构建循环结构以实现强制交互。
  3. 调用 system() 启动倒计时。
  4. 比较输入字符串是否满足条件,决定是终止还是重启计数。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    char a[10];
flag:
    printf("请输入\"我是猪\",否则电脑将在两分钟后关闭\n");
    system("shutdown -s -t 120");    
    scanf("%s", a);
    if (strcmp(a, "我是猪") == 0){
        printf("恭喜你成功选择自己的属相,主动承认现实!\n");
        system("shutdown -a");  // 撤销倒计时
    } else {
        goto flag;
    }
    return 0;
}

第3步:构建功能完整的关机菜单

结合窗口大小设置、日期获取以及字符串拼接,打造结构化控制面板。

配置项说明:

  • system("title C语言关机程序"):设置标题栏文本。
  • system("mode con cols=48 lines=25"):固定控制台尺寸。
  • system("pause"):冻结屏幕以便观察结果。

核心实现:通过 strcat 将定值命令与用户变量合并后传入。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void menuDisplay() {
    printf("*********** 关机菜单 ************\n");
    printf("1. 设置自动关闭(最多600秒) \n");
    printf("2. 立即关闭计算机 \n");
    printf("3. 注销当前用户会话 \n");
    printf("4. 退出程序 \n");
}

int main() {
    system("title C语言管理系统");
    system("mode con cols=48 lines=25");
    system("color 0B");
    system("date /T");
    system("TIME /T");

    menuDisplay();
    int choice = 0;
    char cmdTemplate[30] = "shutdown -s -t ";
    char timeVal[10];

    scanf("%d", &choice);
    
    switch (choice) {
        case 1:
            printf("设定倒计时秒数: ");
            scanf("%s", timeVal);
            strcat(cmdTemplate, timeVal); 
            system(cmdTemplate);
            break;
        case 2:
            system("shutdown -p");
            break;
        case 3:
            system("shutdown -l");
            break;
        default:
            printf("无效输入!");
    }
    system("pause");
    exit(0);
}

第4步:调用命令删除指定文件

可直接传递文件路径给 del 指令进行清除操作。

// Windows命令,注意路径中的反斜杠在C字符串中需转义
// 若路径为 d:\123.txt,实际代码写法应为:
system("del d:\\\\123.txt");

注意:在生产环境中使用此功能务必谨慎,建议先备份或确认权限,防止误删系统核心文件。

总结

通过掌握 system 函数的字符串参数特性,开发者可以在C/C++中灵活操控Windows底层工具。无论是美化界面、执行批量任务还是简单的逻辑判断,都能有效利用外部Shell扩展程序能力。以上就是C语言之system函数案例详解的详细内容,更多关于C语言系统调用的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。