📜  linux 中的 fork() 系统调用 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:02:43.383000             🧑  作者: Mango

Linux 中的 fork() 系统调用 - Shell-Bash

简介

在 Linux 中,fork() 系统调用用于创建一个新的进程,新进程是原进程的副本,称为子进程,子进程与父进程相同,但有不同的进程 ID。 fork() 系统调用返回两次,一次在父进程中返回子进程的 PID,一次在子进程中返回 0。

语法

fork() 系统调用的语法如下:

#include <unistd.h>

pid_t fork(void);
使用方法

在 Shell-Bash 中,可以使用以下方法调用 fork() 系统调用:

#!/bin/bash

echo "Parent process"

pid=$$
echo "Parent PID: $pid"

child_process() {
    echo "Child process"
    child_pid=$$
    echo "Child PID: $child_pid"
    exit
}

child_process &
wait

echo "Parent done"

在上面的示例中,使用了 & 符号将子进程放在后台执行。使用 wait 命令等待子进程执行完成。子进程通过调用 exit 命令来结束自己。

注意事项
  1. 子进程是父进程的副本,但是它们有独立的内存空间。
  2. 父进程和子进程可以使用 PID 来区分彼此。
  3. 父进程和子进程都可以调用 fork() 系统调用来创建新的子进程。
  4. 在 Shell-Bash 中,可以使用 & 符号将子进程放在后台执行。
结论

fork() 系统调用是 Linux 中创建新进程的重要方法之一,在 Shell-Bash 中也有广泛的应用。当你需要在 Shell-Bash 中创建新的进程时,你可以使用 fork() 系统调用来实现。