0
我試過在ubuntu中編寫信號處理函數。該代碼是下面的:Ubuntu中的信號處理功能11.04
#include<signal.h>
void abc();
main(){
printf("Press Ctrl-z key to send SIGINT signal");
signal(SIGINT,abc);
for(;;);
}
void abc(){
printf("The key has been pressed");
}
的野趣因素是: a)首先printf()的未示出 b)中除了第二個printf();
我寫了一本書的代碼。任何人都可以告訴我我犯了什麼錯誤,或者代碼是否會被改變爲Ubuntu。
Thanx提前。
非常感謝你。但是你的回答和程序的輸出引出了幾個問題:你能否回答:a)放置\ n來執行我所做的信號功能的邏輯是什麼? b)只要按下ctrl-c,我的輸出就會繼續顯示DEL按下。它終止我按ctrl-z。但我的邏輯說,「按下DEL」會顯示一次,如果我按ctl-c它會終止。你能否解釋背後的邏輯?再次,非常感謝。 – user2015915
@ user2015915聽起來像你一直在搞'stty' ......「通常」,'SIGINT',對應於'ctrl-c',而不是'ctrl-z'(通常意味着'SIGTSTP'),' DEL'與信號無關。這裏並不清楚你到底想要做什麼...... – twalberg
@twalberg:Sry.I已經從基於UNIX的書中編寫了這些代碼,他們使用的信號是DEL.I沒有得到,它的ctrl-c ot ctrl -z。但它的ctrl-c,因爲如果你按ctrl-z abc()沒有執行我的輸出將是,aftr按ctrl-c它會顯示第二個printf()而不是終止進程。該理論說,如果你按ctrl-c的時間,它會終止。但在我的情況下,只要按下ctrl-c,scnd printf()就會執行 – user2015915