溫馨提示×

c++ exec函數能執行多條命令嗎

c++
小樊
125
2024-12-07 12:38:38
欄目: 編程語言

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

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女