【发布时间】:2016-09-29 06:58:53
【问题描述】:
我是内核模块编程的新手,在编译一些旧内核代码时遇到了一些问题。我收到以下错误消息,
error: ‘struct tty_driver’ has no member named ‘write’
((my_tty->driver)->write) (my_tty,0,str,strlen(str));
我检查了tty_driver.h 文件,那里定义了write。发生什么了?我如何在版本3.13.0-24 中访问?
我的代码在这里:
void print_string(char *str)
{
struct tty_struct *my_tty;
my_tty = get_current_tty();
if (my_tty != NULL)
{
(*(my_tty->driver)->write)(my_tty, 0, str, strlen(str));
}
}
提前谢谢..
【问题讨论】:
-
linux kernel source for 3.13 表示已定义写入,因此您还有其他版本的
tty_driver.h,而不是内核版本。 -
较新的内核将操作函数指针隐藏在
tty_driver中的ops成员结构中
标签: c linux linux-device-driver