Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабораторки по ОС препод Челноков / 2семестр / wi1 / Esin / lab2
.c#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
void Start( char* name,int in,int out)
{
if( fork())
{
dup2(in,0);
dup2(out,1);
execl (name,name, 0 );
}
}
int main( int argc, char* argv[] )
{
int i, fd[2],ffd;
int buf1, buf2,in,out;
in=buf1 = dup(0);
out=buf2 = dup(1);
ffd=open("f.dat",O_RDONLY);
dup2(ffd,0);
close(ffd);
for(i=1;i<argc-1;i++)
{
pipe(fd);
out=fd[1];
Start(argv[i],in,out);
in=fd[0];
}
out=1;
Start(argv[i],in,out);
// dup2(buf2,1);
// dup2(buf1,0);
//close(ffd);
return(0);
}