Скачиваний:
10
Добавлен:
01.04.2014
Размер:
1.35 Кб
Скачать
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <pthread.h>

#define MAXI 5

void * prtmess(void *id);

int main(){
	pthread_t thread_id;
	int id,id2;
    pid_t pid;
    
	id = 1; 
	if (0 == fork ())
    {        
            id = 2;  
	        if (0 == fork ())
            {   
                 id = 3;  
            }    
	} 
	
  if (id == 1) 	
	if (0 == fork ())
    {        
            id = 4;  
	        if (0 == fork ())
            {   
                 id = 5;  
	             if (0 == fork ())
                 {   
                     id = 6;  
                 }       
            }                    
	} 
	
  if (id == 1)     	
	if (0 == fork ())
    {   
       id = 7;       
    }     
    
    id2 = 0;
    switch (id) {
    case 6: id2 = 8;break;
    case 3: id2 = 9;break;
    case 7: id2 = 10;   
      }
      
    if (id2!=0){
                 if (pthread_create(&thread_id,NULL,&prtmess,&id2))
                     perror("pthread_create");  
    }        
         
    prtmess(&id); 
    	wait(0);
	wait(0);
	wait(0);
	return 0;
}

void * prtmess(void *id){
        struct timeval c_time;
	int i;
	int id2 = *(int *)id;
	for (i = 0; i<MAXI;i++){
	    gettimeofday(&c_time,NULL);
	    printf("%2d pid:%5d ppid:%5d :%6d\n",id2,getpid(),getppid(),c_time.tv_usec);
	    usleep(200*1000*id2);
	}
}
Соседние файлы в папке contr1