MST

星途 面试题库

面试题:C语言中使用system函数执行简单命令

在C语言中,使用`system`函数编写一个程序,实现执行`ls -l`命令,并输出执行结果。请解释`system`函数的作用以及可能存在的风险。
49.6万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>
#include <stdlib.h>

int main() {
    int result = system("ls -l");
    if (result == -1) {
        perror("system");
        return 1;
    }
    return 0;
}

system函数的作用是在程序中执行一个外部的命令。它接受一个字符串参数,该字符串包含要执行的命令及其选项。system函数会创建一个子进程,在子进程中执行指定的命令,父进程则等待子进程完成。

可能存在的风险:

  • 安全性风险:如果system函数的参数是由用户输入构造的,可能会引发命令注入攻击。例如,用户输入恶意命令,与原本的命令拼接,从而执行恶意操作。
  • 可移植性问题system函数依赖于底层操作系统的命令解释器,不同操作系统对命令的支持和格式可能不同,这可能导致程序在不同系统上的行为不一致。
  • 返回值处理system函数的返回值较复杂,不同操作系统下的返回值含义可能不同,需要小心处理以正确判断命令执行是否成功。