Я пытаюсь изменить драйвер клавиатуры в minix, моя идея заключается в хранении в файле всех символов, которые были введены в клавиатуре. Я объявляю глобальный FILE * fp и вставляю этот фрагмент кода в /usr/src/drivers/tty/keyboard.cMinix keyboard Driver
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 ...
тогда я бегу «сделать» в каталоге и перезагрузки, но это не работает. Я имею в виду, что файл не создан. Любая идея?
«... не работает» немного туманно. Измените свой вопрос и добавьте дополнительную информацию о том, что «не работает». Это слишком медленно? Не записывает ключи в файл? Открывает шлюз между мирами, через которые созревают чудовищные существа с грязным злом? –
Если вы _truly_ изменяете клавиатуру _driver_ (то есть, она находится в ядре minux), вы не сможете использовать потоки стиля 'stdio.h' [если minux не отличается от любого другого ядра unix, которое я когда-либо использовал] , Вы должны будете использовать внутренние функции minix для ввода-вывода. И, делая 'open, write one char, close' является _extremely_ неэффективным [и может привести к осложнениям]. Откройте файл журнала _once_ –
Но я думаю, что драйверы minix относятся к пользовательскому пространству, и в этом мини-учебнике используются функции stdlib ... http://wiki.minix3.org/doku.php?id=developersguide:driverprogramming –