linux

bash的子进程在linux中怎么创建

小樊
81
2024-12-27 15:08:31
栏目: 智能运维

在Linux中,可以使用fork()exec()系统调用来创建一个Bash子进程

  1. 包含必要的头文件:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
  1. 编写一个简单的程序,用于创建子进程并执行Bash命令:
int main() {
    pid_t pid = fork(); // 创建子进程

    if (pid == 0) { // 子进程
        char *argv[] = {"bash", "-c", "echo 'Hello from the child process!'", NULL};
        execvp(argv[0], argv); // 在子进程中执行Bash命令
        perror("execvp"); // 如果execvp()失败,打印错误信息
        exit(EXIT_FAILURE); // 退出子进程
    } else if (pid > 0) { // 父进程
        int status;
        waitpid(pid, &status, 0); // 等待子进程完成
        printf("Child process finished with status %d\n", WEXITSTATUS(status));
    } else { // fork()失败
        perror("fork"); // 打印错误信息
        exit(EXIT_FAILURE); // 退出父进程
    }

    return 0;
}
  1. 编译并运行程序:
gcc -o create_child_process create_child_process.c
./create_child_process

这个程序将创建一个子进程,并在其中执行echo 'Hello from the child process!'命令。父进程将等待子进程完成,并打印子进程的退出状态。

0
看了该问题的人还看了