SIGPIPEシグナル

クローズされたPIPE(含、ネットワークソケット)にアクセスすると、アクセスしたプロセス(アプリ)に対して、SIGPIPEシグナルが通知される。

デフォルトではSIGPIPEシグナルを受信したプロセスは強制終了される。

強制終了を回避するためには、以下のいずれかの対策を取る必要がある。

  1. SIGPIPEシグナルを無視する設定を与える
    1. 全面的に無視する
    2. ソケット個別に無視する。
  2. SIGPIPEシグナルをハンドラで処理する

 

参考


iOS Developer Library – ネットワーク処理において犯しがちな誤りの回避