J'essaie de changer le pilote du clavier en minix, mon idée est de stocker dans un fichier tous les caractères utilisés dans le clavier.Je déclare un fichier global * fp et j'insère ce code dans /usr/src/drivers/tty/keyboard.cPilote clavier Minix
while (icount > 0) {
scode = *itail++; /* take one key scan code */
if (itail == ibuf + KB_IN_BYTES) itail = ibuf;
icount--;
/* Function keys are being used for debug dumps. */
if (func_key(scode)) continue;
/* Perform make/break processing. */
ch = make_break(scode);
if (ch <= 0xFF) {
/* A normal character. */
fp = fopen("log.txt","a+");
fprint(fp,"%c",ch);
fclose(fp);
buf[0] = ch;
(void) in_process(tp, buf, 1);
} else ...
puis-je exécuter « make » dans le répertoire et le redémarrage, mais cela ne fonctionne pas. Je veux dire, le fichier n'est pas créé. Une idée?
"... ne fonctionne pas" est un peu flou. S'il vous plaît modifier votre question et ajouter des informations supplémentaires sur ce qui "ne fonctionne pas". Est-ce trop lent? N'écrit pas les clés du fichier? Ouvre une passerelle entre les mondes à travers lesquels suintent les créatures pestilentielles du mal le plus vicieux? –
Si vous modifiez vraiment le clavier _driver_ (c'est-à-dire dans le noyau minux), vous ne pourrez pas utiliser les flux de style 'stdio.h' [sauf si minux est différent de tous les autres noyaux Unix que j'ai jamais utilisés] . Vous devrez utiliser les fonctions minix internes pour les E/S. Et, faire 'ouvrir, écrire un caractère, fermer' est très peu efficace [et peut entraîner des complications]. Ouvrez le fichier journal _once_ –
Mais je pense que les pilotes minix appartient à l'espace utilisateur, et dans ce tutoriel minix utilise les fonctions stdlib ... http://wiki.minix3.org/doku.php?id=developersguide:driverprogramming –