LINUX.ORG.RU

select и msgget, shmget ?


0

0

Не подскажите, можно ли с помощью select или pol прослушивать 
открытые дискрипторы, полученные при создании очереди сообщений или 
разделяемой памяти ?  Если нельзя, то может объясните почему, если не сложно.
У меня не вышло с очередью сообщений.

 
anonymous

Лучше ты объясни, почему ты считаешь, что идентификатор возвращаемый msgget или shmget является дескриптором?

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

Ага понятно но не совсем, спасибо.
А может тогда подскажите, что такое дескриптор файла. 
Уже давно пытался найти что-то вроде определения, но не нашел.
И чем идентификатор отличается от дескриптора. Понимаю,
что вопросики ламера и наверное их вообще неприлично задавать, но вот
давно не могу понять. 

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

Совет. Добрый. Купите книгу Стивенса "UNIX: взаимодействие процессов". И будет Вам трансцендентальное счастье. Просто-таки Нирвана Вам будет. Серьёзно.

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

Разные типы, разные функции по обработке этих типов данных. А вот точного определения я тоже не видел, видимо это установлено априори.

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

Главное отличие -- в принципах работы ядра с файлом и не-файлом. Файл, с точки зрения ядра, представляется потоком неструктурированных данных. Идентификатор любого объекта, с которым можно работать как с файлом (read/write), принято называть файловым дескриптором. Это не обязательно должен быть регулярный файл, им может быть пайп, сокет и т.п. Если объект по семантике является файлом (неструктурированный поток байтов), его можно повесить на select.

Что будет ждать select, если ему дадут разделяемую память? Это не поток байтов. Очередь сообщений вроде бы похожа на файл, но не совсем, потому что она имеет структуру, поддерживаемую ядром. Ты должен указать тип сообщения, а select не имеет такого аргумента.

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