Linux
在特定時間獲取系統通知?
在 Linux 或 FreeBSD 中,有沒有辦法在指定時間從系統接收通知?我正在考慮類似於 Linux 中的 inotify 對文件系統事件所做的事情。
有一種使用 cron 的方法,但我問是否有可以以程式方式呼叫的較低級別的介面。如果 cron 是此類任務的“官方”Unix 介面,我也想知道這一點。
我知道有兩個低級介面:
一種是簡單地執行 sleep() 直到您想要接收通知的那一刻。睡眠呼叫由 glibc 提供。
另一種方法是 alarm() 系統呼叫。它允許您告訴核心,在經過定義的時間後,它應該向呼叫程序發送 SIGALRM。您很可能必須創建一個適當的信號處理程序,然後執行您想做的事情。
對於這兩種方法,您都無法設置想要獲得通知的絕對時間。相反,您必須獲取目前時間,並根據它計算您的程序必須等待多長時間才能喚醒或報警。
參考資料(在 Linux 上): man 3 sleep;人2報警;