// Программа из конспекта "Системное программное обеспечение" // Очереди сообщений в Linux // стр. 107 // Название: client.c // Описание: функция клиента клиент-серверной системы // на основе очередей //pipemesg/cllent.c #include "mesg_send.c" #include "mesg_recv.c" void client(int readfd, int writefd) { size_t len; ssize_t n; struct mymesg mesg; /* считывание полного имени */ fgets(mesg.mesg_data, MAXMESGDATA, stdin); printf("Запрос файла %s\n",mesg.mesg_data); len = strlen(mesg.mesg_data); if (mesg.mesg_data[len-1] == '\n') len--; /* удаление перевода строки из fgets() */ mesg.mesg_len = len; mesg.mesg_type = 1; /* запись полного имени в канал IPC */ mesg_send(writefd, &mesg); /* считывание из канала IPC, запись в stdout */ printf("Ответ сервера\n"); while ( (n = mesg_recv(readfd, &mesg)) > 0) write(STDOUT_FILENO, mesg.mesg_data, n); }