Здравствуйте kong, Вы писали:
K>Здравствуйте santucco, Вы писали:
K>>>Я имел ввиду буфер в потоке. А вот на счет другого способа, он мне его искать поручил (вариан с синхронизацией процессов через семафор ему тоже не понравился). S>>А что надо сделать-то?
K>да вот такая схема: есть демон, который через сислог по конвееру передает данные моей программе на stdin. Мне их надо оттуда забирать и писать в базу. Если постоянно по циклу проверять stdin на наличие данных, то сильно грузиться процессор. Вот и надо сделать, чтобы прога просыпалась только когда есть данныее в stdin. Я предложил вариант сделать синронизацию с демоном через семафор, но шефу не понравилось и он меня навел на идею с select(). Я с ним сам вчера целый день промучился, вот сегодня решил в форум месагу кинуть.
Через syslog обязательно? Это дело здорово систему грузит само по себе — я отладочную инфу в большом количестве сваливал в syslog, так syslogd в top'е был на самой верхней позиции. Делать какие-либо коммуникации через syslog — себе дороже выйдет. Он для логов предназначен.
Вот общение с демоном через socket'ы — милое дело, отлично идет с тем-же select'ом. Хочешь — через Inet-socket, хочешь — через Unix-socket.