Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
26.05.2014
Размер:
715 б
Скачать
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>


void func(char *name)
{ 
 if( fork() == 0 ) //Start predok
    {  
     
     printf("\nResult programm 2:\n"); 
     execlp( name, name, 0 );
    }
}



int main( int argc, char *argv[] )
{
  int i, fd[2], in, out;
  int buf1,buf2,pid;
  in = dup(0);    //Make in,buf1,buf2 canals
  buf1 = dup(0); 
  buf2 = dup(1); 
  pid = getpid();

  for( i = 1; i < argc - 1; i++ )
  {
    pipe( fd ); 
    out = fd[1]; 
    dup2(in,0);
    dup2(out,1);  
      close(in);
      close(out);
      func(argv[i]); 
      in = fd[0];
  }   

	dup2(in,0); 
	dup2(buf2,1); 
        func(argv[i]);
       	dup2(buf1,0); 
        dup2(in,0);
	dup2(buf2,1);
 
  }


 


Соседние файлы в папке lab2