Обсуждение статьи тематического каталога: Использование select() для построения очереди сообщений (select gcc file io syscall linux)Ссылка на текст статьи: http://www.opennet.me/base/dev/select_sample.txt.html
Как решение - очень интересно.
Но проще все сделать с помощью контейнера сообщений, мютекса для синхронизации доступа к нему и семафора.