LINUX.ORG.RU

именованные пайпы


0

0

Господа, не подскажете, есть ли функция, которая заставляет процесс ждать, пока к именованному пайпу не подсоединится клиент (аналогично виндовому ConnectNamedPipe)? И вообще, не подскажете, как написать простенький *мультипоточный* (мультипроцессный) неймд-пайп сервер? Пример из "Руководства программиста для Linux" от Sven Goldt'а и компании просьба не предлагать - там все в одном процессе.

С уважением, Денис

anonymous

>Пример из "Руководства программиста для Linux" от Sven Goldt'а и компании просьба не предлагать - там все в одном процессе.

а там всё так само только к пайпу ещё надо бривязать мьютекс или файловую блокировку

cvv ★★★★★
()
Ответ на: комментарий от cvv

А можно примерчик? К сожалению, совершенно нет времени искать самому :( Пинок в нужном направлении не повредил бы $)

anonymous
()
Ответ на: комментарий от anonymous

а чё собственно непонятно???

создаёш/открываеш пайп. ставиш ему в соответствие некоторый мьютекс и пишеш враппер на read /write который периодически поглядывает на мьютекс прежде чем когото пустить к пайпу.

cvv ★★★★★
()

open() на FIFO будет ждать подключения, если что. И мьютексы лесом...

anonymous
()
Ответ на: комментарий от NewComer

> Работайте с трубой в неблокирующем режиме (O_NONBLOCK) правильная мысль, man select и пара экспериментов могут спасти отца русской демократии

anonymous
()
Ответ на: комментарий от anonymous

>> Работайте с трубой в неблокирующем режиме (O_NONBLOCK)

> правильная мысль,

и чего здесь правильного??? ето совсем не тот случай когда nonblock может дать хоть какуюто выгоду кроме усложнения кода.

> man select и пара экспериментов могут спасти отца русской демок

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

а вот пара экспериментов действительно ему помогут

cvv ★★★★★
()
Ответ на: комментарий от cvv

что-то не пойму, о чем речь.

если нужно ждать, пока кто-то не откроет пайп на запись,
то select/poll + POLLHUP|POLLIN

idle ★★★★★
()
Ответ на: комментарий от idle

> то select/poll + POLLHUP|POLLIN

пардон, пардон, заврался.

pipe_poll() выставит POLLHUP только при исчезновении писателей.

мои искренние сорри за вранье :)

idle ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.