All pastes #207215 Raw Edit

Trucs

public c v1 · immutable
#207215 ·published 2006-10-17 21:30 UTC
rendered paste body
#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <stdlib.h>#include <sys/wait.h>#include <sys/stat.h>#include <fcntl.h>int main(){    const int TBUF=50;  int p[2], q[2];  int fd;  char buffer[TBUF+1];  int nblu;  int pidF, pidPf;  int i;  int nbLigne;   //Creation du premier tube  if((pipe(p)) != 0)    {      perror("pipe");      exit(EXIT_FAILURE);    }    //Creation du second tube  if((pipe(q)) != 0)    {      perror("pipe2");      exit(EXIT_FAILURE);    }    pidF=fork();    switch (pidF){  case -1 :     perror("Erreur lors de la creation du processus fils. \n");    exit(EXIT_FAILURE);  case 0 :    pidPf=fork();    switch (pidPf){    case -1 :       perror("Erreur lors de la creation du processus petit fils. \n");      exit(EXIT_FAILURE);    case 0 :      close(p[1]);      while(read(p[0], buffer, TBUF)>0)	{	  /*for(i=0 ;i < TBUF; i++)	    {	      printf("%c",buffer[i]);	      }*/	}      nbLigne = execlp("wc","wc","-l",(char *)NULL);      printf("%d",nbLigne);      break;    default :       close(p[0]);      fd=open("toto.txt",O_RDONLY);      while(nblu=read(fd,buffer,TBUF+1)>0){	buffer[nblu]='\0';     	if(nblu < 0)	  {	    perror("Erreur lors de la lecture du fichier\n");	    exit(1);	  }	write(p[1],buffer,TBUF);      }      wait(NULL);      break;    }     break;  default :    ;    break;  }  return 0;}