面试题答案
一键面试#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
函数的返回值较复杂,不同操作系统下的返回值含义可能不同,需要小心处理以正确判断命令执行是否成功。