LINUX.ORG.RU

только на уровне смены раскладок/хака ядра (для консоли) или хака X-сового эмулятора терминала. по определению.

а зачем?

dmiceman ★★★★★
()

смотри исходники showkey

ananas ★★★★★
()
Ответ на: комментарий от sceptik

Зачем? Если речь идёт об SIGINT?

2wieker А чего хочется сделать то?

mky ★★★★★
()

Зачем до? Напиши обработчик SIGINT.

grusha
()

господа!

я надеюсь, никто не обидится, если я всех, включая себя, назову неучами и ламерами, что бы не сказать большего?

ответ по существу: да, можно. вернее, можно сказать терминалу не генерить этот самый SIGINT.

man tcsetattr

#include <stdio.h>
#include <termio.h>

int main() {
        struct termios settings;
        tcgetattr(0, &settings);
        settings.c_lflag &= ~ISIG;
        tcsetattr(0, TCSANOW, &settings);
        while(1) {
                sleep(1);
        }
}

P.S. ну ладно молодёжь, но мне-то это следовало бы помнить! P.P.S. а что не так с ctrl-z?

dmiceman ★★★★★
()
Ответ на: комментарий от dmiceman

такие проги в блэклист.
ибо фиг ты ее прибьешь по Ctrl+C при зависании.
только через kill
а так, обрабатывая сигнал, она может сбросить важные настройки на диск или прибить зависшее место.

xydo ★★
()
Ответ на: комментарий от grusha

> Ну или так, но это только если isatty(0).

ну мы так и не услышали, что требуется автору…

dmiceman ★★★★★
()
Ответ на: комментарий от xydo

> только через kill

man kill

по умолчанию, kill шлет вполне перехватываемый SIGTERM.

отсутствие генерации SIGINT терминалом не означает, что сигналы нельзя обрабатывать.

dmiceman ★★★★★
()
Ответ на: комментарий от wieker

А, нет, символы так и не читаются, просто сигналы перестали приходить.

wieker ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.