[問題] 關於 timer signal

看板Linux作者 (非常念舊)時間7年前 (2017/03/08 19:38), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
版友好 我寫了一個小程式,這程式會打開 /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

03/13 01:35, , 1F
你是用printf印出變數內容? printf不是signal safe
03/13 01:35, 1F

03/14 19:59, , 2F
我是在安卓上開發,印出是用ALOGD(),何謂non-safe?
03/14 19:59, 2F
文章代碼(AID): #1Ol-qPHn (Linux)