Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабораторки по ОС препод Челноков / prog / k1+k2_pipe_file_03
.c#include<stdio.h>
#include<unistd.h>
int main(int argc, char* argv[])
{
if(argc!=5)
{
printf("invalid arguments\n");
}
int fd[2],in ,f_des,out;
int buf1, buf2;
in = dup(0);
buf1 = dup(0);
buf2 = dup(1);
pipe(fd);
out=fd[1];
dup2(in,0);
dup2(out,1);
close(in);
close(out);
if(fork()==0){execlp(argv[1],argv[1],0);}
if(fork()==0){execlp(argv[2],argv[2],0);}
in = fd[0];
dup2(in,0);
close(1);
f_des=creat(argv[4],0777);
if(fork()==0)
{
execlp(argv[3],argv[3],0);
}
dup2(buf2,1);
dup2(buf1,0);
}
Соседние файлы в папке prog