小白学c++之fork()函数

#include 
#include 
#include 
#include 

int main(int argc, const char* argv[])
{
	printf("hello,pid%d\n",getpid());
	fork();
	printf("hello,pid%d\n",getpid());
	return 0;
}

test@ubuntu:~/share/jincheng$ ./a.out 
hello,pid13429
hello,pid13429

test@ubuntu:~/share/jincheng$ hello,pid13430

fork()子进程只进行fork后面的语句,复制前面的父进程的数据,但不执行语句



#include 
#include 
#include 
#include 

int main(int argc, const char* argv[])
{
	
	for(int i=0;i<2;++i)
	{
		if(fork()==0)
		{
			printf("hello,pid%d,ppid%d\n",getpid(),getppid());
			exit(1);
		}else
		{
			printf("hello,pid%d,ppid%d\n",getpid(),getppid());
		}
	}
	sleep(1);
	return 0;
}
test@ubuntu:~/share/jincheng$ ./a.out 
hello,pid13594,ppid2978
hello,pid13594,ppid2978
hello,pid13596,ppid13594
hello,pid13595,ppid13594

#include 
#include 
#include 
#include 

int main(int argc, const char* argv[])
{
	
	for(int i=0;i<2;++i)
	{

		fork();
		printf("hello,pid%d,ppid%d\n",getpid(),getppid());

	}
	sleep(1);
	return 0;
}

test@ubuntu:~/share/jincheng$ ./a.out 
hello,pid13610,ppid2978
hello,pid13610,ppid2978
hello,pid13612,ppid13610
hello,pid13611,ppid13610
hello,pid13611,ppid13610
hello,pid13613,ppid13611

你可能感兴趣的:(WD)