linux c 教程

进程的创建fork()

#include<stdio.h>
main()
{
int p1,p2;
	if(p1=fork())               /*子进程创建成功*/
    	putchar('b');
	else
	{ 
		if(p2=fork())              /*子进程创建成功*/
  		putchar('c');
    		else putchar('a');           /*父进程执行*/
	}
}

 

进程的控制 未加锁lockf()

#include<stdio.h>
main()
{
	int p1,p2,i;
	if(p1=fork())
{
 		for(i=0;i<500;i++)
		        printf("parent%d\n",i);
         wait(0); /* 保证在子进程终止前,父进程不会终止*/
			exit(0);
}
	else
	{ 
 	if(p2=fork())
			{
    		for(i=0;i<500;i++) 
			 printf("son %d\n",i);
          wait(0); /* 保证在子进程终止前,父进程不会终止*/
			 exit(0); /*向父进程信号0且该进程推出*/
}
 	else
			{
    		for(i=0;i<500;i++)  
			printf(“grandchild %d\n",i); 
			exit(0);
}
	}
}


进程的控制 加锁lockf()

#include<stdio.h>
main()
{
	int p1,p2,i;
	if(p1=fork())
	{
     	lockf(1,1,0);
     	for(i=0;i<500;i++)  
			printf("parent %d\n",i);
     	lockf(1,0,0);
	      wait(0); /* 保证在子进程终止前,父进程不会终止*/
	      exit(0);
}
	else
 	{
  		if(p2=fork())
			{ 
			lockf(1,1,0);
     		for(i=0;i<500;i++) 
 printf("son %d\n",i);
    		lockf(1,0,0);
         wait(0); /* 保证在子进程终止前,父进程不会终止*/
			exit(0);

  			}
		else
		{ 
		 lockf(1,1,0);
     		for(i=0;i<500;i++) 
 printf("daughter %d\n",i);
   	   	 lockf(1,0,0);
   	 exit(0);
		}
	 }
}


 

 

 

 

 

 

 

 

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值