抑制套接字中的“不允许操作”错误

ste*_*225 2 c++ sockets

我有一个小型实用程序,可以处理TCP和UDP套接字。有时,我收到打印到stderr的错误“不允许操作”。我的问题是,我根据套接字函数(有时是errno)的返回码处理错误,并且不打印任何内容。因此,此消息必须来自套接字调用之一。我不确定是哪一个,因为此消息很少出现,因此很难调试,但是我认为它要么来自socket要么sendto

有没有办法禁止打印所有消息?我可以自己处理错误,我不需要代表我不受控制的系统。

注意,这是仅Linux的应用程序。

谢谢您的帮助。

Cod*_*ers 5

您是否在套接字API之上使用任何库?用于套接字的功能不应将任何内容打印到stderr。我建议首先使用strace和/或ltrace检查此消息的来源。