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 に答える