Условный улов сигнала

Я знаю, что мой титул может сбивать с толку, но терпите меня. Я новичок в сигналах.

У меня есть программа, которая действует как 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;
              }
            }
          }

Есть ли способ сделать это?

0 ответов

Другие вопросы по тегам