FILE * ポインターを入力として受け取る小さなライブラリーを作成しています。
この FILE * ポインターをすぐにチェックして、セグメンテーション違反につながることがわかった場合は、シグナルを処理し、errno を設定して、正常に終了する方が正しいですか? または、何もせずに、発信者がインストールしたシグナル ハンドラーを使用しますか?
「ライブラリは決してクラッシュを引き起こしてはならない」というのが一般的な知恵のようです。しかし、私の考えでは、この特定の信号は間違いなく発信者の責任であるため、発信者からその情報を隠そうとするべきではありません。彼は、独自の方法で問題に対応するために、独自のハンドラーをインストールしている場合があります。errno を使用して同じ情報を取得できますが、SIGSEGV のデフォルトの処理は正当な理由で設定されており、シグナルを渡すことは、発信者にエラーを処理させるか、クラッシュさせてさらなる損傷から保護することにより、この哲学を尊重します。 .
この分析に同意しますか、それともこの状況で SIGSEGV を処理する説得力のある理由があると思いますか?