0
Linux信號我有一個C程序是這樣:程序沒有響應從終端發送不連續打印的終端
while(1){
if(flag1){
...
}
if(flag2){
...
}
}
現在,這些標誌將在處理程序SIGINT和SIGTSTP信號得到提升。終端只是顯示^ C和輸入Ctrl + C鍵或Ctrl + Z時^ Z,但條件代碼塊不被執行。
然而完全相同的程序,但如果我給一個printf象下面這樣:
while(1){
printf(" ");
if(flag1){
...
}
if(flag2){
...
}
}
該程序響應爲Ctrl + Z或Ctrl + C信號,並且將各個條件碼塊被執行。 有人可以解釋這種行爲嗎?我不知道爲什麼保持終端忙的東西被連續打印,使我的程序響應的信號,而不是相反。
爲什麼不張貼的完整代碼,所以我們可以幫助? – cleblanc
程序沒有響應到Linux的信號,我怎麼就知道只是看着while循環的骨架。發佈有問題的代碼和錯誤代碼,這將有助於理解您所面臨的問題。 – LethalProgrammer
https://gist.github.com/schegde/fafc10fa6947c2bd738d3334198ba1f1#file-transfer-c –