Условный улов сигнала
Я знаю, что мой титул может сбивать с толку, но терпите меня. Я новичок в сигналах.
У меня есть программа, которая действует как cat
или же more
Команды Unix, но он имеет небольшой поворот. Он печатает первые x строк, а затем позволяет пользователю нажимать Ctrl-/, чтобы распечатать следующие x строк. я знаю Ctrl-/
по умолчанию используется для остановки процесса, но я хочу переопределить его.
Я хочу сделать что-то вроде
if (user_enters = signal(SIGQUIT, sig_function))
затем выведите следующие x строк
Я не уверен, как условно проверить, вошел ли пользователь в Ctrl-/
сигнал
прямо сейчас мой код заставляет пользователя вводить n, чтобы перейти к следующим x строкам, вот так...
scanf(" %c", &next);
if (next == 'n'){
//loop +4 times and only print the last 4 lines
for (i = 0; i < 4; i++){
printf("%s", buf);
if (i < 3){
if (fgets(buf, sizeof(buf), file) == NULL){
fclose(file);
return 0;
}
}
}
Есть ли способ сделать это?