作者gn00618777 (非常念舊)
看板Linux
標題[問題] 關於 timer signal
時間Wed Mar 8 19:37:57 2017
版友好
我寫了一個小程式,這程式會打開 /dev/hidraw0 這個節點
一打開成功後,就會啟動一個 一秒之後會執行別的程式的 timer
signal(SIGALRM, calculate_crc_per_sec);
alarm(1);
接著馬上進入 while 迴圈對 hidraw0 作讀取
while 裡面有對一些全域變數作運算
calculate_crc_per_sec 裡面就印出這些全域變數,也會assign值,然後再設定alarm(1)
。也就是每一秒都會觸發這個timer。
我知道這可能會牽涉到 calculate_crc_per_sec 內作運算值,結束後,while也會對變數
做處理會導致值不太對。
但我每次都會遇到系統鎖死重開機的狀況阿....? 請問這是啥原因
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.69.181
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1488973081.A.471.html
→ dwj: 你是用printf印出變數內容? printf不是signal safe 03/13 01:35
→ gn00618777: 我是在安卓上開發,印出是用ALOGD(),何謂non-safe? 03/14 19:59