2016-04-06 46 views

答えて

5

「タスク」はどのように実行され、どのように停止しますか?外部から殺された/終了したばかりの場合、そのプロセスの中でそれを検出することはできません。

プログラムが通常の方法で終了した場合(killもno quick exitもありません)、exit()中に実行されるatexit()で「クリーンアップ」機能を登録できます。

EDIT:それはC++なので、カスタムタイプのグローバル変数を使用して、デストラクタ内でコードを実行することができます。これはatexit()と基本的に同じです。

3

atexit()は、これを行うためのC移植可能な方法です。あなたがそれを行うためのWindowsの特定の方法を使用したい場合は

、これを参照してください。Win32 API analog of sending/catching SIGTERM

+0

これは良いようです。 ありがとう – user3434681

関連する問題