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 命令。這樣就可以在同一個進程中順序執行多條命令。