在Linux中,fork函数用于创建一个新的进程,该进程是调用进程的副本。新进程称为子进程,原来的进程称为父进程。fork函数通过复制父进程的内存空间、文件描述符等信息来创建子进程,子进程会继承父进程的大部分资源和状态。
fork函数在创建子进程时返回两次:在父进程中返回子进程的进程ID(PID),在子进程中返回0。这样可以根据返回值的不同来区分父进程和子进程,从而进行不同的操作。
fork函数的原型如下所示:
#includepid_t fork(void);
一个简单的示例代码如下所示:
#include#include int main() { pid_t pid = fork(); if (pid < 0) { fprintf(stderr, "Fork failed\n"); return 1; } else if (pid == 0) { printf("This is the child process\n"); } else { printf("This is the parent process, child PID is %d\n", pid); } return 0; }
在上面的示例中,通过fork函数创建了一个子进程,子进程输出"This is the child process",而父进程输出"This is the parent process, child PID is %d",其中%d是子进程的进程ID。