Skip to content

ДЗ FIFO

Mikhail Plekhanov edited this page Nov 9, 2017 · 2 revisions

Домашнее задание 8 FIFO

Цель задания - добавить в наш сервер еще один источник получения команд - именованный канал.

Программа минимум - мы должны поддержать входящий канал, в который нам будут посылать команды. Т.о. мы можем быстро локально записать в наш сервер какое-то образ с сохраненными значениями. Ответы посылать никуда не нужно (либо в /dev/null).

Программа максимум - добавить выходной канал, в который мы будем писать ответы. Тут нужно позаботиться о корректной работе сервера в случае если читатель отвалился и присоединился заново.

Задача

Добавить параметры командной строки для сервера:

  • -r имя_канала - отсюда мы читаем команды
  • -w имя_канала - сюда мы пишем ответы

Сервер должен создавать указанные именованные каналы и удалять их при завершении.

Для получения 10 баллов достаточно реализовать только чтение.

После запуска сервера (afina -r /tmp/input_pipe) можно послать команду в канал и затем убедиться что данные сохранились в сторадже (через выходной канал, либо запросом по сети):

echo -ne "add foo 0 0 6\r\nfoobar\r\n" >> /tmp/input_pipe

Тесты

Тестирование производится руками.