Ou est-il possible que quelque processus ou autre chose puisse bloquer un terminal virtuel? Ou quelle pourrait être la raison pour laquelle une application se bloque en essayant d'accéder au VT1?Quelles sont les raisons possibles pour bloquer un terminal virtuel sous Linux?
Il semble, pendant ce temps, il est suspendu dans la fonction ioctl
. Surtout, c'est le code qui échoue:
int vtno = 1;
const char* vtname = "/dev/tty1";
int fd = open(vtname, O_RDWR|O_NDELAY, 0);
if (ioctl(fd, VT_ACTIVATE, vtno) < 0)
printf("VT_ACTIVATE failed: %s\n", strerror(errno));
if (ioctl(fd, VT_WAITACTIVE, vtno) < 0)
printf("VT_WAITACTIVE failed: %s\n", strerror(errno));
Il est dans la deuxième ioctl
. Quand je l'interrompre, je reçois ce message:
VT_WAITACTIVE failed: Interrupted system call
De plus, alors qu'il attend là, si je fais un chvt 1
d'un autre terminal, qui pèse aussi.