Подавить ошибку «Операция не разрешена» из сокета - PullRequest
1 голос
/ 11 мая 2011

У меня есть небольшое служебное приложение, которое обрабатывает сокеты, как TCP, так и UDP.Иногда я получаю сообщение об ошибке «Операция не разрешена» в stderr.Моя проблема в том, что я обрабатываю ошибки на основе кодов возврата функций сокета (и иногда ошибаюсь) и ничего не печатаю.Таким образом, это сообщение должно исходить от одного из вызовов сокетов.Я не уверен, какое именно, так как это сообщение встречается так редко, его было трудно отладить, но я думаю, что оно исходит от socket или sendto.

Есть ли способ подавить всесообщения от печати?Я могу справиться с ошибками самостоятельно, мне не нужно, чтобы система делала это бесконтрольно от моего имени.

Обратите внимание, это приложение только для Linux.

Спасибо за помощь.

1 Ответ

4 голосов
/ 11 мая 2011

Используете ли вы какую-либо библиотеку поверх API сокетов? Функции, используемые для работы с сокетами, не должны ничего печатать в stderr. Я бы предложил использовать strace и / или ltrace, чтобы проверить, откуда это сообщение в первую очередь.

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