0
우분투에서 신호 처리 기능을 작성하려고했습니다.우분투 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");
}
intersting 인자이다 : 코드는 다음과 같다 a) 최초의 printf()가 B 도시되지 않음)뿐만 아니라 제의 printf();
나는 책에서 코드를 썼다. 어떤 실수를 내가 실수했는지 또는 코드가 우분투를 위해 수정 될 것인지 알려줄 수 있습니까?
고지.
man sigaction
대단히 감사합니다. 하지만 귀하의 대답과 프로그램의 출력은 몇 가지 질문을 제기합니다 : 당신은 대답 할 수 pls : 대답) 내가 만든 신호 기능을 실행 \ n 뒤에 논리는 무엇입니까? b) 내 출력은 언론 ctrl-c만큼 DEL이 눌려진 것을 계속 보여줍니다. 그것은 aftr 내가 Ctrl-z를 눌러 종료합니다. 하지만 내 논리에 따르면 "DEL은 눌려져있다"는 말은 ctl-c를 누르면 종료 될 것입니다. u pls가 뒤에 논리를 설명 할 수 있습니까? 다시 한번 고마워요. – user2015915@ user2015915 'stty'가 엉망이 된 것처럼 들리는데 ... "보통", "SIGINT"는'ctrl-z '(대개'SIGTSTP'를 의미)가 아닌'ctrl-c ' DEL '은 신호와 관련이 없습니다. 여기 정확히 무엇을하려하는지 정확히 알지 못합니다 ... – twalberg
@twalberg : Sry. 나는 유닉스 기반의 책에서이 코드를 작성했습니다. 어디서 신호가 DEL.I 사용 되었습니까? ctrl-c ot ctrl -지. 하지만 ctrl-c를 누르면 ctrl-z를 누르면 abc()가 내 출력을 실행하지 못하기 때문에 Ctrl 키를 누른 채로 두 번째 printf()를 표시하고 프로세스를 종료합니다. 이 이론은 u가 ctrl-c를 누르면 scnd 시간이 끝난다 고 말합니다. 하지만 내 경우에는, scnd printf()는 ctrl-c를 누를 때까지 실행됩니다. – user2015915