// Неименованные каналы в Linux // Программа из учебника "Системное программирование в среде Linux", Гунько А.В., стр. 73 // Название: mainpipe.c // Описание: взаимодействие родственных процессов // через неименованные каналы //Pipes/mainpipe.c #include #include #include #include #include #include #include #include #include #include "client.c" #include "server.c" #define MAXLINE 80 void client(int, int), server(int, int); int main(int argc, char **argv) { int pipe1[2], pipe2[2]; pid_t childpid; pipe(pipe1); /* создание двух каналов */ pipe(pipe2); if ((childpid = fork()) == 0) { /* child */ close(pipe1[1]); close(pipe2[0]); server(pipe1[0], pipe2[1]); exit(0); } /* родитель */ close(pipe1[0]); close(pipe2[1]); client(pipe2[0], pipe1[1]); waitpid(childpid, NULL, 0); /*ожидание завершения дочернего процесса */ exit(0); }