c - setsockopt() 等效于非套接字文件描述符?

标签 c sockets bsd

有人知道在非基于套接字的文件描述符上工作的与 setsockopt() 等效的方法吗?

具体来说,考虑一下这段代码:

int on = 1;
setsockopt(socketfd, SOL_SOCKET, SO_NOSIGPIPE, &on, sizeof(int));

一切都好,花花公子,现在我们可以避免使用 SIGPIPE 并在编写时引用 EPIPE。但这仅适用于使用 accept()、socket() 等打开的套接字文件描述符。

我正在尝试为 pipe() 调用打开的文件描述符获得类似的功能,而 setsockopt() 会立即将其拒绝为非套接字文件描述符。

对于由 pipe() 或 open() 打开的描述符,是否有与上述 (setsockopt()) 等效的方法?

最佳答案

没有等价物,但您可以使用 socketpair 来创建一个 Unix 套接字。

关于c - setsockopt() 等效于非套接字文件描述符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38289467/

相关文章:

c - 如何制作可以接收不同类型参数的 c 函数?

c - 在 c 中将 const char* 转换为 char* 的问题

linux - TCP 客户端没有收到来自虚拟机的 Socket.Send 回复

c - 套接字 recv() 卡在带有 MSG_WAITALL 的大消息上

c - 此C代码仅获取HTTP header ,而不是html文件

error-handling - BSD校正可能吗?

c - Putchar 和 Getchar 每次我按 Enter 时都会输出

c++ - 在结构数组中设置多行错误

bash - 管道搜索模式到 BSD grep

ios - 为什么这段代码在 Xcode 模拟器上可以运行,但在设备上却不能运行?