Я попытался написать функции обработки сигналов в 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");
}
межжала фактор: а) Сначала Е() не показана б) Так же как и второй Е();
Я написал код из книги. Может ли кто-нибудь рассказать мне, какие ошибки я сделал или будет ли код изменен для ubuntu.
Thanx заранее.
большое спасибо. Но ваш ответ и мой вывод программы ставят несколько вопросов: можете ли вы ответить на это: а) какова логика, заключающаяся в том, что \ n выполняет функции сигнала, которые я сделал? b) Мой вывод продолжает показывать DEL IS PRESSED, если нажать ctrl-c. Он завершает aftr и нажимает ctrl-z. Но моя логика говорит, что «DEL нажата» будет отображаться один раз и aftr, если я нажму ctl-c, он закончится. Может ли вы объяснить логику? Еще раз большое спасибо. – user2015915
@ user2015915 Похоже, что вы возились с 'stty' ...« Обычно »,' SIGINT', соответствует 'ctrl-c', а не' ctrl-z' (что обычно означает 'SIGTSTP') и' DEL' не связан с сигналом. Здесь не совсем ясно, что именно вы пытаетесь сделать ... – twalberg
@twalberg: Sry.I написал этот код из книги, основанной на UNIX, где они используют сигнал DEL.I did not get that it ctrl-c ot ctrl -z. Но его ctrl-c, потому что, если u нажимает ctrl-z, то abc() не выполнил. Мой вывод будет, aftr нажав ctrl-c, он покажет второй printf(), скорее завершающий процесс. Теория говорит, что если u нажмет ctrl-c для времени scnd, она закончится. Но в моем случае scnd printf() выполняется до тех пор, пока u нажимает ctrl-c – user2015915