[問題] C有關time control的問題

看板C_and_CPP (C/C++)作者 (逆宇)時間15年前 (2011/05/10 22:58), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/2 (看更多)
板上大大好,是這樣的 小弟最近寫程式時,在time control時碰到一個問題 想要做的事情是 從QUEUE中,每隔"一秒鐘整"拉出一筆資料,然後把她送出去 但是始終沒有辦法控制到很精準 想問問看我這樣的邏輯有甚麼問題 或者是說 我該乖乖放棄不用控制一秒鐘 而是以分鐘為單位之類的 以下是我的CODE void sleep_til_round_sec() { struct timeval now; gettimeofday(&now, 0); usleep(1000000 - now.tv_usec); } void send_func(){ struct timeval start, end; while(1){ gettimeofday(&start, 0); DeQueue(xxx); Sendto(...); gettimeofday(&end, 0); if(end.tv_sec - start.tv_sec > 0){ exit(0); } sleep_til_round_sec(); } } 用wireshark看 發現出來的結果還是沒有辦法每個封包之間的距離是一秒 還是會不準 而且最奇怪的地方是居然是太快 而不是太慢 用wireshark看我每個封包的間隔大概是 1sec - 5 * 10E-4 秒左右 想請問板上大大有沒有更好的時間控制機制之類的? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.217.30.38 ※ 編輯: mingcloud 來自: 61.217.30.38 (05/10 23:58) ※ 編輯: mingcloud 來自: 61.217.30.38 (05/11 00:18)

05/12 22:17, , 1F
要更精準我猜 組語...XD
05/12 22:17, 1F
文章代碼(AID): #1DoLAinK (C_and_CPP)
文章代碼(AID): #1DoLAinK (C_and_CPP)