看板 Linux 關於我們 聯絡資訊
想請教一下 當我程式中開啟/dev/ttyS0時 程式被crtl + c所中斷 但是/dev/ttyS0並不會關閉 雖然程式的後面有寫到close的部分 但是因為crtl + c,所以沒有執行到那段 我用過sigaction處理ctrl + c 但是雖然可以關閉/dev/ttyS0 不過卻沒有辦法結束掉我的程式 所以想請教一下各位先進有沒有較好的處理方式 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.187.146
godman362:另外,我曾經試過在sigaction的函數用goto 12/10 16:28
godman362:不過函數似乎不予許這樣的做法,他會找不到label 12/10 16:28
WolfLord:問問男人怎麼說 signal 12/10 17:18
WolfLord:ctrl-C 叫做 SIG_BRK 12/10 17:19
godman362:請問中SIGINT和SIGBRK不同嗎? 12/10 17:41
godman362:signal和sigaction做的事情不是同樣嗎? 12/10 17:47
godman362:目前在我看了說明之後是這樣認為的 12/10 17:47
antontw:你確定程式還抓得到 ctrl+c 嗎?會不會只跑背景輸出而已? 12/10 20:13
opcode:在 ISR 內關閉 ttyS0 之後回復 ctrl+c 的預設動作 12/10 20:18
opcode:在送一次 ctrl+c 給自己 12/10 20:18
godman362:我確定程式第一次進行中有抓到ctrl+c 12/10 20:41
godman362:可否請教一下,何謂ISR? 12/10 20:42
godman362:因為我在ctrl+c之後,沒有正常關閉ttyS0 12/10 20:43
godman362:於是同樣的程式啟動第二次,就會卡在open那行程式 12/10 20:43