c++

c++ exec函数能执行多条命令吗

小樊
82
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
看了该问题的人还看了