Цитата(Макс_Мат @ Feb 7 2008, 11:14)

Я не могу понять как пробудить процесс (или сообщить ему, что есть данные) , а потом он конечно поюзает read, что бы прочитать.
читаю сейчас про select .... эта функция ждет появления данных в источнике и если они появились, то она возвращает соответствующее значение. Смысл такой?
с каждым объектом межпроцессного взаимодействия связан файловый дескриптор для организации доступа к объекту и управления этим объектом.
...смысл select следующий: вы делаете вызов select, в качестве параметров передаете дескриптор (набор дескрипторов, например дескриптор pipe) и маску событий для этого дескриптора (например готовность на чтение). Процесс приостанавливается (засыпает) пока для заданного дескриптора не наступит одно из событий (в нашем случае готовность на чтение), произойдет выход из select. Возвращаемое значение будет номер дескриптора для которого произошло одно из событий указанных в маске (у нас это дескриптор pipe). В случае pipe - это означает что пришли данные.