【C语言学习笔记】调用系统命令system

版权声明:学习和思考记录,如有错误欢迎指正,转载请注明出处。 https://blog.csdn.net/u012534008/article/details/54601045

调用系统命令system()

头文件

stdlib.h

函数原型

int system(char *command) Windows系统
int system(const char *string) Linux系统

功能

简单的讲,system函数可以调用在程序中调用系统命令。
在Windows系统中调用的是cmd控制台命令;在Linux系统中调用的是shell命令

参数

输入
函数的输入是一个字符串,可以是字符串常量,也可以是字符串数组。
字符串的内容即是需要执行的系统命令。
输出
函数输出为一个整数值,用于标志命令运行的结果。具体返回值的意义较为复杂,在这里暂不作深入研究。

分析

只要是在命令行或者shell中可以执行的命令,该函数都可以调用并执行,因此可以在程序中对系统进行各种操作。
在调用时,参数可以直接为字符串,也可以是字符串数组。例如,

#include <stdio.h>
#include <stdlib.h>
int main()
{
    system("dir");
    return 0;
}

或者是

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char com[]="dir";
    system(com);
    return 0;
}

也可以利用字符串处理函数,对命令进行灵活的处理。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
    char com1[]="dir";
    char com2[]=" /q";
    system(strcat(com1,com2));
    return 0;
}

实验

在学习中,我们可以利用system函数实现一些有趣的小功能。

实现程序暂停

在如VC6.0、VS2013、C-Free等开发环境下编译器会自动在程序的结尾添加暂停功能,从而方便查看程序运行的结果。但是在有的开发环境下,编译器并不会自动添加暂停功能,使得程序在运行时只能看到一个黑框一闪而过。为了能够看到程序运行的结果,我们需要手动在程序的结尾添加一个暂停语句,这里便要用到system函数来实现。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    printf("Hello World!\n");
    system("pause");
    return 0;
}

实现系统关机功能

有了system函数对系统指令的调用,我们自然就可以实现在命令行更够实现的功能。例如自动关闭计算机。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char t[10], c[30] = "shutdown -s -t ";
    printf("请输入多少秒后关闭计算机:");
    gets(t);
    system(strcat(c, t));
    return 0;
}

控制台标题

程序运行时,通常在标题栏中显示的是程序的运行目录。我们可以使用系统命令,使标题栏显示我们需要的内容,如程序名,使得程序窗口显得更加合理。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char t[10], c[30] = "shutdown -s -t ";
    system("title 关闭计算机");
    printf("请输入多少秒后关闭计算机:");
    gets(t);
    system(strcat(c, t));
    return 0;
}

system函数还可以实现很多强大的功能,来帮助我们利用程序来操作系统或者获得信息。巧妙的利用系统命令可以得到很多灵活而又方便的功能。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页