All pastes #252643 Raw Edit

Sans titre

public c v1 · immutable
#252643 ·published 2006-11-19 20:15 UTC
rendered paste body
#include <stdio.h>#include <unistd.h>#include <sys/wait.h>#include <string.h>#include "termine.h"int le_tube[2];void traite_le_fils(int num_fils){	close(1);	dup(le_tube[1]);	close(le_tube[1]);	close(le_tube[0]);	switch(num_fils)	{		case 1:			printf("Lancement calc1\n");			if(execl("./calc1", "calc1", NULL)==-1)				termine("Probleme lors du lancement de calc1");			break;		case 2:			printf("Lancement calc2\n");			if(execl("./calc2", "calc2", NULL)==-1)				termine("Probleme lors du lancement de cal2");			break;		case 3:			printf("Lancement calc3\n");			if(execl("./calc3", "calc3", NULL)==-1)				termine("Probleme lors du lancement de calc3");			break;	}}void traite_le_pere(){	char buff;	int i;	close(le_tube[1]);	while(1)	{		printf("os\n");		while(read(le_tube[0], &buff, 1)!=0)			printf("%c", buff);	}}		int main(){	if(pipe(le_tube) == -1)		termine("Erreur lors de la création du tube");	if(fork() ==0)	{		traite_le_fils(1);	}	else // Processus Pere	{		if(fork()==0)		{			traite_le_fils(2);		}		else // Processus Pere		{			if(fork()==0)			{				traite_le_fils(3);			}			else // Processus Pere			{				traite_le_pere();			}		}	}	return 0;}