Solarisでの壊れたパイプを検出することは、()の呼び出しを送信します
-
18-09-2019 - |
質問
Solarisでの送信中に壊れたソケットを検出する方法()を呼び出しますか?私は、信号を使用したくない。
私はSO_NOSIGPIPEとMSG_NOSIGNALを試してみましたが、両方のは、Solarisで使用できないと私のプログラムは、「壊れたパイプ」エラーで殺されます。
壊れたパイプを検出する方法はありますか?
ありがとうございます。
解決
あなたは、具体的sigaction()
信号を無視するSIGPIPE
を使用する必要があります:
struct sigaction act;
act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, NULL);
...その後send()
は-1を返しますerrno
に設定EPIPE
してます。
他のヒント
私はあなただけの限られた選択肢を持っているのSolarisに思います。私の知る限り、カフェによって提案はsigactionは、最善の解決策のように見える。
所属していません StackOverflow