Witam....
Mam do rozwiązania następujący problem: w jaki sposób zablokować wykonywanemu programowi dostęp do klawiatury?
Chodzi o to żeby program po prostu nie reagował na klawiaturę (np. naciśniecie Ctr+C nie może zamknąć programu).
Zamknięcie programu nastąpi dopiero po otrzymaniu odpowiedniego komunikatu od innego programu - tę sprawę mam już załatwioną.
Proszę o jakieś podpowiedzi, jakich funkcji i w jaki sposób użyć. Program jest pisany w ANSI C.
Z góry dziękuje za każdą pomocną informacje....
0
0
jezeli chodzi o wyłączenie specjalnych terminalowych znaków wejściowych to można to zrobić w tak:
#include <stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>
int
main (void)
{
struct termios term;
long v;
if (!isatty (STDIN_FILENO))
exit (1);
if ((v = fpathconf (STDIN_FILENO, _PC_VDISABLE)) == -1)
exit (1);
if (tcgetattr (STDIN_FILENO, &term) == -1)
exit (1);
term.c_cc [VINTR] = v;
if (tcsetattr (STDIN_FILENO, TCSAFLUSH, &term) == -1)
exit (1);
exit (0);
}
Wyłączenie w tym przypadku klawisza przerwania jest zupełnie czymś innym niż zignorowanie sygnału przerwania. Jeżeli program ma pracować przez dluższy czas bez interakcji z użytkownikiem to można odłączyć go od terminala sterującego (poczytaj o demonach).