0

timer_createおよびを使用して、LINUX で定期的なタイマーをスケジュールするプログラムを作成しtimer_settimeました。

このタイマーを削除して停止する前にプロセスを強制終了するとどうなりますか? メインを終了した後でもタイマーは生き続けますか。

はいの場合、メインを強制終了した後、そのようなタイマーがまだ実行されているかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

0

timer_create(2)の man ページには、次のように書かれています。

   Timers are not inherited by the child of a fork(2), and are disarmed and
   deleted during an execve(2).

そのため、作成プロセスが終了または終了した後 (たとえば、強制終了された後) にタイマーを気にする必要はありません。

Linux では、タイマーについてカーネルを解析/proc/timer_listおよびクエリできます。/proc/timer_stats

プロセス固有のリソース (ファイル記述子、アドレス空間、タイマーなど)を管理するのはカーネルの責任です。その上でカーネルを信頼してください。fork( 2)およびexecve(2)のマニュアル ページに記載されているように、カーネルはそのようなリソースを適切に解放します。

Linux カーネルの役割とシステム コールの詳細を参照してください。

于 2012-07-16T07:38:07.037 に答える