首页 > 编程笔记

C语言system():执行特定的系统命令

system() 是 C语言的一个标准库函数,定义在<stdlib.h>头文件中。

system() 函数的功能是执行 dos(windows 系统)或 shell(Linux/Unix 系统)命令,函数的原型如下:
int system(const char *command);

参数

command:指向一个包含要执行的系统命令的字符串

返回值

当 command 的值为 NULL 时,如果命令处理器可用,函数返回非零值,否则返回零。

当 command 不为 NULL 时,函数成功执行命令返回 0,否则返回 -1 或其他非零值。

system() 函数的行为与操作系统有关,可能会在不同的平台上有所不同。此外,由于 system() 函数能够执行任何有效的系统命令,因此在使用时需要特别小心,以防执行恶意代码或暴露敏感信息。

【实例】以下是一个简单的 C语言示例程序,用于在 Unix/Linux 系统上使用 system() 函数列出当前目录的内容:
#include <stdio.h>
#include <stdlib.h>

int main() {
    int result;

    printf("Listing the contents of the current directory:\n");

    // 执行 "ls" 命令
    result = system("ls");

    if (result) {
        printf("An error occurred while executing the command.\n");
    }

    return 0;
}
请注意,因为 system() 函数执行的命令依赖于底层操作系统,因此上述代码可能不会在所有系统上正常工作。

此外,因为 system() 可能会暴露系统安全漏洞,所以在安全关键的应用程序中应谨慎使用。在可能的情况下,最好使用更特定、更受控制的方法来执行所需的操作。

推荐阅读