特定の時間にシステム通知を受け取りますか?

特定の時間にシステム通知を受け取りますか?

LinuxやFreeBSDでは、指定された時間にシステムから通知を受け取る方法はありますか?私はLinuxのファイルシステムイベントに対してinotifyが実行するのと似ていると思います。

cronを使用する方法もありますが、プログラム的に呼び出すことができるサブインターフェイスがあるかどうかお問い合わせください。また、cronがこれらのタスクを実行するための「公式」Unixインターフェースであることを知りたいと思います。

ベストアンサー1

私は2つの低レベルのインターフェースがあることを知っています。

一つは、通知を受けたい瞬間まで、単に sleep() することです。睡眠呼び出しはglibcによって提供されます。

別の方法は Alarm() システムコールです。これにより、定義された時間が経過した後に呼び出しプロセスにSIGALRMを送信する必要があることをカーネルに通知できます。必要なタスクを実行する前に適切なシグナルハンドラを作成する必要がある可能性が高くなります。

どちらの方法も通知を受けたい絶対時間を設定できません。代わりに、現在の時間を取得してそれを使用して、プロセスが目覚めたり警告を受け取る前に待機する時間を計算する必要があります。

リファレンス(Linux):man 3 sleep;

おすすめ記事