[問題] 如何讓C語言依據時間去執行某件事情..

看板C_and_CPP (C/C++)作者 (超越自己)時間12年前 (2014/05/21 17:51), 12年前編輯推噓4(4011)
留言15則, 8人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux C -------------------------------- 各位板友大家好, 小弟目前採用C語言完成演算法的運算,並將運算結果存入資料庫, 假設將一天切割為24個時段,演算法會輸出24個結果。 這24個值分別代表0~23時應該要執行的動作。 而由『執行C語言程式』至資料庫取值,並根據數值來送出命令。 請問我的『執行C語言程式』應當怎麼設計, 才能確保整點時間一到,就根據資料庫的數值來送出命令呢!? 是否能請板友給予一些啟發,小弟感激不禁,謝謝。 目前的想法『執行C語言程式』不停的跑無窮迴圈, 去比對系統當前的時間是否為整點, 若時間比對無誤,則取出演算法運算的結果,送出執行命令。 不過我有疑慮的是... 這樣這支程式不就以極小於1秒的速度, 拼命在執行迴圈了... 還請板友不吝回答,謝謝大家^^ -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.124.42.70 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1400665903.A.C4B.html

05/21 18:34, , 1F
寫script或是用sleep
05/21 18:34, 1F

05/21 18:34, , 2F
linux的話用at吧 不過有點看不懂你的問題描述.
05/21 18:34, 2F

05/21 19:15, , 3F
謝謝Q大 p大
05/21 19:15, 3F
p大您好, 意即我希望在整點時,讓程式去做某件事, 我的想法是去抓系統當前的時間,然後比對是否為整點, (也許像..如果是01:00則抓取資料表第二個參數) 不過...我擔心的是...如果因為時間差或是某些因素, 導致沒比對到..而導致實驗結果和預期不同。 ※ 編輯: BIAO (140.124.42.70), 05/21/2014 19:18:00

05/21 22:01, , 4F
你該查一下 prismwu 說的 at..不會有你說的問題。
05/21 22:01, 4F

05/21 22:41, , 5F
Linux 看看 crontab 吧,不知道合不合你用
05/21 22:41, 5F

05/22 15:35, , 6F
crontab... submit the process to system scheduler
05/22 15:35, 6F

05/23 02:01, , 7F
簡單說就是這種需求比較常見的做法是丟給 OS 去排程
05/23 02:01, 7F

05/23 02:02, , 8F
在 linux 上有 at, crontab 等等, Windows 上也有"工作排程"
05/23 02:02, 8F

05/23 02:53, , 9F
我猜他想要的是OS定時通知他吧? linux查timerfd這關鍵字
05/23 02:53, 9F

05/23 02:53, , 10F
unix(bsd)印象中也有timerfd windows的話也有 要hook
05/23 02:53, 10F

05/23 02:53, , 11F
不過我也忘了怎麼弄
05/23 02:53, 11F

05/23 02:54, , 12F
這個寫daemon一天到晚用到 crontab應該也是用這寫的
05/23 02:54, 12F

05/23 02:55, , 13F
不過我也覺得直接popen crontab/at可以滿足大多數需求XD
05/23 02:55, 13F

05/23 05:02, , 14F
話說select一樣可以做到定時效果 也可以查查看怎麼用
05/23 05:02, 14F

07/01 02:14, , 15F
謝謝大家的回覆,我的需求是crontab ^^
07/01 02:14, 15F
文章代碼(AID): #1JV7SlnB (C_and_CPP)
文章代碼(AID): #1JV7SlnB (C_and_CPP)