Трудно найти приложение, которое работало бы само по себе и не нуждалось в обмене данными с другими процессами. QNX 6.x предоставляет мощный механизм обмена данными, основанный на передаче сообщений с помощью семейства функций MsgSend().
Сообщения передаются через так называемые каналы, создаваемые серверным приложением с помощью системного вызова ChannelCreate(). После того, как канал создан, к нему могут подключаться клиентские приложения с помощью вызова ConnectAttach(). ConnectAttach() возвращает клиенту идентификатор, который тот потом использует для отправки сообщений серверному приложению с помощью MsgSend(). Все это может происходить совершенно неявно для разработчика, скрываясь под такими библиотечными вызовами стандарта POSIX, как open(), read(), close()… Читать далее «Получение списка файловых дескрипторов процесса»