簡體   English   中英

等一下

[英]wait for a time

我需要在特定時間啟動我的應用程序。 我不想從事玉米工作。 我的可執行文件是一個應用程序,喜歡從2011年1月20日開始運行,因此我必須以./app –2011年1月20日的日期運行它

這里的問題是,我將如何計算命令行選項中提供的當前和日期的時差。

我不想寫贏函數。 是否有任何內置函數可用於此類時差。 (c和Linux)

我知道您期望得到C答案,但這可能會讓您感興趣:

既然你是在Linux上,該系統已經提供一種有效的方式來安排ponctual任務: at

在您的情況下,想要在20.01.2011上午8點運行任務的用戶只需輸入:

echo "./app" | at 08:00 20.01.2011

該任務將使用用戶的憑據運行。 需要注意的是at同時接受相對時間指令,如at now +1 day 它是一個強大的工具,默認情況下隨大多數Linux發行版一起提供。

可以使用以下方式獲取計划的作業列表:

atq

您甚至可以使用以下方法刪除計划的作業:

atrm

希望這可以幫助。

您可以計算開始時間與現在之間的時差(以毫秒為單位),然后通過將該數字作為超時參數傳遞給select()epoll()來等待這么多毫秒。

要計算差異,一種方法是先使用strptime()將日期字符串轉換為struct tm ,然后將其傳遞給mktime() ,這將為您提供strptime() unix紀元1970年1月1日00:00以來的秒數:00。 然后使用gettimeofday()clock_gettime()獲取當前時間,它們還報告自unix紀元以來經過的時間。 將開始時間和當前時間轉換為秒,然后減去這些值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM