1.fork()函数
fork()是一个系统调用,用于创建进程。创建的这个进程与原来进程几乎完全相同。这个新产生的进程称为子进程。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。需要注意的一点:就是调用fork之后,两个进程同时执行的代码段是fork函数之后的代码,而之前的代码已经由父进程执行完毕。下面来看一个很简单的例子。
fork()返回两个值
返回一个大于0的值给父进程
返回0给子进程
返回其他值说明fork失败了
2.关于fork的一个简单例子
#include
#include
int main()
{
pid_t pid;
int count = 0;
pid = fork();//fork一个进程
if(pid == 0) { //pid为0,
printf("this is child process, pid is %d\n",getpid());//getpid返回的是当前进程的PID
count+=2;
printf("count = %d\n",count);
} else if(pid > 0) {
printf("this is father process, pid is %d\n",getpid());
count++;
printf("count = %d\n",count);