2013年5月12日日曜日

SIGINT, SIGTERMでも美しく止まるC++アプリケーション

ユーザーはCTRL+Cやpkillしたがるもの。

特にコマンドラインで実行される事を前提としたアプリケーションでは例えアプリケーションが正規のインターフェースとして「quitとかexitとか撃ち込めば終了するよ」なんて場合でもユーザーはCTRL+Cとかpkillをけしかけてくる( ・`ω・´)

と、いうか私もよくけしかけますヽ(´ー`)ノ

CTRL+Cやpkillでも終了メッセージを出して美しく止まる事ももちろん、特にスレッド、デバイス、ストアすべきデータを扱うアプリでは対応しておきたいですね。

シグナルハンドリングコードのポータビリティ的にBoost.Asioのsignal_setを使って見ました。GNU/Linux以外(特にかの有名なマイクロソフトOS)では似たようにシグナルハンドリングができるのかどうか知らなかったりするけど一応ネ(;´∀`)

refs

0 件のコメント:

コメントを投稿