реклама на сайте
подробности

 
 
> Процессы в linux, непонятки с взаимодействием
Макс_Мат
сообщение Feb 7 2008, 07:55
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 21-03-07
Пользователь №: 26 378



Граждане, такой вопросик к гуру: у меня есть два работающих процесса, открыта труба между ними (для передачи данных), писатель пишет в трубу, читатель спит, одно не пойму: как мне сообщить читателю, чтобы он проснулся и прочитал данные? В инете встретил инфу о механизме сигналов, семафоров и т.п. подскажите, что лучше тут использовать, и как? И если можно, какую-нить литературу. Спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Макс_Мат
сообщение Feb 7 2008, 08:14
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 21-03-07
Пользователь №: 26 378



Я не могу понять как пробудить процесс (или сообщить ему, что есть данные) , а потом он конечно поюзает read, что бы прочитать.

читаю сейчас про select .... эта функция ждет появления данных в источнике и если они появились, то она возвращает соответствующее значение. Смысл такой?
Go to the top of the page
 
+Quote Post
tag
сообщение Feb 7 2008, 11:55
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 21-02-06
Пользователь №: 14 561



Цитата(Макс_Мат @ Feb 7 2008, 11:14) *
Я не могу понять как пробудить процесс (или сообщить ему, что есть данные) , а потом он конечно поюзает read, что бы прочитать.

читаю сейчас про select .... эта функция ждет появления данных в источнике и если они появились, то она возвращает соответствующее значение. Смысл такой?



с каждым объектом межпроцессного взаимодействия связан файловый дескриптор для организации доступа к объекту и управления этим объектом.

...смысл select следующий: вы делаете вызов select, в качестве параметров передаете дескриптор (набор дескрипторов, например дескриптор pipe) и маску событий для этого дескриптора (например готовность на чтение). Процесс приостанавливается (засыпает) пока для заданного дескриптора не наступит одно из событий (в нашем случае готовность на чтение), произойдет выход из select. Возвращаемое значение будет номер дескриптора для которого произошло одно из событий указанных в маске (у нас это дескриптор pipe). В случае pipe - это означает что пришли данные.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 15:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01357 секунд с 7
ELECTRONIX ©2004-2016