C++ 的 exec
函数本身不能直接执行多条命令,但可以通过组合使用多个 exec
函数来实现执行多条命令。以下是一个示例:
#include <iostream>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid = fork();
if (pid == 0) { // 子进程
// 执行第一条命令
execl("/bin/ls", "ls", "-l", NULL);
// 如果 execl 失败,输出错误信息并退出
perror("execl");
exit(EXIT_FAILURE);
} else if (pid > 0) { // 父进程
// 等待子进程执行完毕
int status;
wait(&status);
// 执行第二条命令
execl("/bin/pwd", "pwd", NULL);
// 如果 execl 失败,输出错误信息并退出
perror("execl");
exit(EXIT_FAILURE);
} else { // fork 失败
perror("fork");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
在这个示例中,我们首先使用 fork()
创建一个子进程,然后在子进程中执行 ls -l
命令,在父进程中等待子进程执行完毕后,再执行 pwd
命令。这样就可以在同一个进程中顺序执行多条命令。