Solarisでの壊れたパイプを検出することは、()の呼び出しを送信します

StackOverflow https://stackoverflow.com/questions/2205455

質問

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は、最善の解決策のように見える。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top