Re[4]: Отладка сторонней библиотеки Linux
От: keeper-andrew  
Дата: 27.05.13 16:36
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, keeper-andrew, Вы писали:


KA>>Огромное спасибо. Номер строки показал. Но там мега макрос так что теперь вопросов появилось больше чем ответов.

KA>>FD_SET( eis->fd, &eis->rfds );
KA>>из select.h

N>Так это банальный макрос, он ставит в 1 бит, соответствующий fd.

N>Надо, сделать assert, что eis_fd >= 0 && eis_fd < FD_SETSIZE. Например, есть вариант, что он равен -1, потому что забыли вовремя инициализировать или, наоборот, закрыли слишком рано.
N>Затем посмотреть, что такое eis->rfds. Если это статический fd_set, то тут проблем нет, но если выделяется явно malloc'ом, то посмотреть, сколько выделяется.

Огромное Вам спасибо. Проблема была еще в другом методе, который не закрывал файловые дескрипторы. Поэтому идентификатор файла достигал значений больше 1024. Что и вызывало проблему. У меня другой вопрос. Открытие файла с айдишником большим 1024 это нормально (для линукса), а вот полноценная работа с ним уже невозможна. Это вообще нормально? И как с этим бороться? Я уверен что приложение теоретически будет держать больше 1024 открытых файловых дескриптора: это сервер приложений, для него это нормально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.