// Неименованные каналы в Linux // Программа из учебника "Системное программирование в среде Linux", Гунько А.В., стр. 73 // Название: client.c // Описание: функция клиента //pipe/client.с #include #include #include #include #include #include #include #define MAXLINE 80 void client(int readfd, int writefd) { size_t len; ssize_t n; char buff[MAXLINE]; /* получение полного имени файла */ fgets(buff, MAXLINE, stdin); len = strlen(buff); /* fgets() гарантирует завершающий нулевой байт */ if (buff[len-1] == '\n') len--;/* удаление перевода строки из fgets() */ /* запись полного имени в канал IPC */ write(writefd, buff, len); /* считывание из канала, вывод в stdout */ while ( (n= read(readfd, buff, MAXLINE)) > 0) write(STDOUT_FILENO, buff, n); }