看板 Linux 關於我們 聯絡資訊
版友好 我寫了一個小程式,這程式會打開 /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