Получение ошибки «Незаконный поиск» после вызова accept () - PullRequest
1 голос
/ 19 мая 2010

Хорошо ... похоже, что при проверке моей переменной errno у меня появляется ошибка "Незаконный поиск". Проблема в том, что я понятия не имею, что это может значить.

Я знаю, что сокеты обрабатываются как файлы в Unix, но я не понимаю, как это может быть связано с сокетами. Что я делаю именно так:

int sck = ::accept(m_socket, (struct sockaddr*)&client_address, (socklen_t*)&address_len);

Тогда я получаю sck = -1 и errno = ESPIPE

И странно то, что это происходит случайно. Я имею в виду, что иногда код работает нормально, а иногда просто исключение. Я работаю с темами, так что это понятно. Но я просто хотел бы знать, какое поведение вызывает вызов accept () для установки errno как ESPIPE, чтобы я мог проверить параметры, например.

Спасибо Нельсон Р. Перес

1 Ответ

1 голос
/ 19 мая 2010

Наиболее вероятная причина в том, что переменная m_socket повреждена. Используйте strace, поскольку @Aidan предлагает посмотреть, какое значение передается accept(2), или присоедините к процессу отладчик и установите контрольную точку в этой ячейке памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...