Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабораторки по ОС препод Челноков / 2семестр / VD / Nsouz / lab2 / lab2
.c#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);
}