如何确保 posix c 套接字仍然有效

How to ensure a posix c socket is still valid

我在嵌入式 linux 内核 2.6 设备上工作,需要知道以前建立的套接字是否仍然有效,而且我不能用通常的发送函数来做这个并检查返回值,因为如果我发送到无效的套接字描述符,我的应用程序将崩溃并且 linux 将关闭我的 process.Is 还有其他 function/suggestion 吗?

编辑: 设备中安装了一个应用程序管理器,当我尝试发送到未引用打开的套接字的套接字描述符时,应用程序管理器将结束我的应用程序,然后如果我关闭套接字连接并尝试写入它,我的应用程序将被较低级别的应用程序关闭-manager.Also 我正在使用 TCP 套接字,WBr。

我认为这个问题要么陈述错误,要么基于错误的前提。没有意义 "invalidity" 套接字可以通过另一个 process/host 的操作异步拥有。最接近的可能是套接字的另一端被关闭,这 不会使您的套接字无效 ,但它确实会导致后续写入您的套接字导致 EPIPE 错误和 SIGPIPE 信号(如果未被阻止)。 SIGPIPE 依次默认终止您的进程。如果这是你的问题,避免它的最简单方法是使用 sigprocmask/pthread_sigmask 阻止 SIGPIPE,或者使用 signal(SIGPIPE, SIG_IGN).

忽略它