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);
		}
	 }
}


 

 

 

 

 

 

 

 

 


 

 

你可能感兴趣的:(linux c 教程)