【发布时间】:2016-06-09 18:34:10
【问题描述】:
我正在尝试更改 minix 中的键盘驱动程序,我的想法是将键盘中使用的所有字符存储在一个文件中。我声明一个全局 FILE * fp 并将这段代码插入 /usr/ src/drivers/tty/keyboard.c
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 ...
然后我在目录中运行“make”并重新启动,但这不起作用。我的意思是,该文件未创建。 有什么想法吗?
【问题讨论】:
-
“...不起作用”有点朦胧。请编辑您的问题并添加一些有关“不起作用”的附加信息。是不是太慢了?不将密钥写入文件?打开世界之间的门户,通过它渗出最邪恶的瘟疫生物?
-
如果你是真正修改键盘驱动(即在minux内核中),你将无法使用@987654323 @风格流[除非minux与我曾经使用过的所有其他unix内核不同]。您必须使用内部 minix 函数进行 I/O。而且,
open, write one char, close的效率非常低效[并且可能导致并发症]。打开日志文件一次 -
但是我认为minix驱动属于用户空间,在这个minix教程中使用stdlib函数...wiki.minix3.org/doku.php?id=developersguide:driverprogramming