25

在套接字ssize_t send(int __fd, const void* __buf, size_t __n, int __flags)中,我们得到了这个__flags论点。我在MSG_NOSIGNAL整个连接中都使用标志。有没有办法实现这个标志功能write?由于我在整个连接中都使用此标志,因此可以在socket创建时设置它。随意提及是否有实现所有__flag功能的方法。

4

1 回答 1

41

不。当使用它写入套接字时,与将参数设置为零write的调用相同。sendflags

来自官方 POSIX 参考

如果fildes指的是一个套接字,write()应该等效于send()没有设置标志。


然而,有一种方法可以永久地“设置”这个标志,那就是忽略这个SIGPIPE信号:

signal(SIGPIPE, SIG_IGN);
于 2013-11-14T07:24:51.227 回答