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