Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
別のライブラリ ファイルに保持される一連の C++ 関数を作成する必要があります。このファイルは、他の人が作成したさまざまな Linux アプリケーションのクラッシュ ログに使用されます。このような関数は、機能するためにシグナル ハンドラをインストールする必要があります。
ロガー関数が使用されるアプリケーションが独自のシグナル ハンドラーをインストールする場合、シグナルがロガー関数に到達することを確認するにはどうすればよいですか?
signal、sigaction、などの関数をsigprocmaskライブラリに実装して、glibc で定義されている関数の代わりに使用することで、シグナル ハンドラのオーバーライドやシグナルのブロックを防ぐことができます。
signal
sigaction
sigprocmask
アプリケーションは、対応するシステムコールを直接呼び出すことで、これを回避できます。