项目:current系统变量
安装书中的程序会出现这样的错误:
35:error:‘struct tty_driver’ has no member named ‘write’.
36:同样的错误
之后用Source Insight进去找,发现tty->driver中没有write这个变量的定义,就觉得引用driver是错的,然后去找类似的,看到网上有人用tty_operations,于是进去这个结构看下,里面有write这个指针,而且还有需要的函数参数,不过是三个,于是就把程序改为:
tty->ops->write tty->ops->write(tty, msg,strlen(msg))
顺利编译通过,加载模块成功(这个的方式和项目一类似,就不列出),在终端下打印出Hello tty出来,同时在日志文件中输入三个printk语句中的内容。
这个项目回答了上一个项目的第二个问题,也就是不仅能够从日志文件中输出调试函数printk的内容,而且在tty中输出想要的语句。同时窥视了Linux内核里面的连环结构的调用线路,这就是Linux内核一层层结构体的引用,使代码不断抽象功能不断强大的原因。