在初步了解Linux系统的操作基础后我们不难发现,无论是怎么编译代码,怎么使用命令也好,进程都是由我们人工输入指令来创建的。那么实际程序运用中,也是得由后台管理人员不断人工创建进程吗?
答案当然是否定的,以人工的速度来看,每条进程的创建至少也需要好几秒的操作时间,那么面向广大用户的系统软件还能正常运行吗?不难想出,一定有哪种方法使得正在运行的进程接到用户传来的信号后,自动就会创建新的进程,来处理用户传信号来想做的事情。而进程创建,正是使用了fork()方法。
pid_t fork(void);
fork()方法的返回类型是pid_t, 它的功能是创建一个进程。而返回类型pid_t的实质其实是int类型,在Linux内核2.4.0版本中的定义是:
typedef int __kernel_pid_t
tyoedef __kernel_pid_t pid_t
调用fork()需要头文件: #include <unistd.h>
fork函数会新生成一个进程,调用fork函数的进程为父进程,新生成的进程为子进程。在父进程中返回子进程的pid,在子进程中返回0,失败返回-1.
让我们来看下面一个最简单的例子,来更直观地了解fork函数的使用方法:
#include <stdio.h>
#include <stdlib.h>
#include <