Добро пожаловать:)
Я предлагаю как можно быстрее получить копию Расширенное программирование в среде Unix, 2-е издание . Здесь есть отличные примеры использования select()
(и всего остального тоже).
Пакет с исходным кодом на приведенной выше странице содержит отличный пример calld/loop.c
, который более или менее точно показывает, что вы хотите - серверный цикл, который принимает соединения, добавляет соединения в маску выбора дескрипторов файлов и обрабатывает дескрипторы файлов по очереди.
Если вы хотите более дружественный интерфейс, исследуйте libevent . Libevent может дать вам более высокую производительность на широком спектре платформ и , приятный интерфейс. Отлично подходит для производственного кода, а может быть и менее подходит для изучения работы ядра.