fork函数

#include <unistd.h>
#include <stdio.h>
int main()
{
	int pid, n = 0;
	n = 1;
	while((pid = fork()) == -1);
	if(pid == 0)
	{
		printf("child process, n = %d\n", n++);
	}
	else
	{
		printf("father process, n = %d\n", n + 3);
	}
	return 0;
}

  

fork函数被调用一次,能够返回两次,它有三种不同的返回值:
1)在父进程中,fork返回新创建子进程的进程ID;
2)在子进程中,fork返回0;
3)如果出现错误,fork返回一个负值;

在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。在子进程中,fork函数返回0,在父进程中,fork返回新创建子进程的进程ID。我们可以通过fork返回的值来判断当前进程是子进程还是父进程。

 

#include <unistd.h>
#include <stdio.h>
int main()
{
	int i, pid;
	fork();
	fork();
	putchar('A');
	return 0;
}

  

posted @ 2019-04-22 21:06  青衫客36  阅读(370)  评论(0编辑  收藏  举报