Страница 1 из 1
FIFO. Ограничение на емкость.
Добавлено: 09 авг 2005, 18:32
daermon
Описание ситуации: в качестве ipc используется именованный канал (FIFO). Процесс взаимодействия происходит следующим образом: сначала все данные записывает клиент, и потом все данные читает сервер. Вопрос в следующем: есть ли ограничение на максимальный размер помещенных в FIFO данных? Как можно его изменить? Поясняю. Сколько можно записать данных в FIFO прежде чем произойдет блокировка на записа и как можно изменить это.
Добавлено: 14 авг 2005, 01:19
Rezki Uladzislau
Да ограничение есть, и это зависит от системы. Например в LINUX максимальный размер равен 4096 байт. Если больше то атоммарность не гарантируется.
Добавлено: 14 авг 2005, 01:41
mend0za
Максимальный размер данных, помещённых в FIFO, в Linux привязан к размеру страницы памяти
для i386 - это естественно 4096 (4K)
обнаружил раскопкой заголовочных файлов ядра
и атомарность тут не при чём, у него write блокируется, при записи большего количества данных, чем 4K
Добавлено: 14 авг 2005, 15:26
Rezki Uladzislau
По поводу атомарности, я имел в виду, если несколько процессов пишут в один канал, то атомарность зависит от размера PIPE_BUF