Unix で C++ を使用しています。
たとえば、ファイルから内容を読み取って解析するなど、長時間実行される関数があるとします。この関数では、ファイルから読み取ったものの数をローカル変数に保持しますnum_read
。
カスタム シグナル ハンドラで CTRL+c をキャッチし、 の値を出力したいと考えていますnum_read
。
私が考えることができる唯一の方法はnum_read
、ヒープに割り当て、そのアドレスをシグナルハンドラーからアクセスできるグローバル変数に格納することです。もっとエレガントな方法はありますか?