【问题标题】:Linux driver writing, file_operations incompatible pointer type errrorLinux驱动编写,file_operations不兼容指针类型错误
【发布时间】:2019-05-26 19:04:00
【问题描述】:

我正在编写一个简单的 linux 驱动程序,它可以接受通过 CLI 传输的消息,但我收到了一个不兼容的指针类型错误。

我的读取函数和 file_operations 结构:

ssize_t driver_read(struct file *filep, char *buffer, ssize_t len, loff_t *offset) {
    printk(KERN_INFO "Write: %s\n", message);
    return 0;
}

struct file_operations fops = {
    write: driver_write,
    read: driver_read
};

当我尝试编译代码时,出现以下错误:

error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
 read: driver_read

根据这里的另一个帖子,读取函数的返回类型应该是ssize_t,我有,但我仍然得到这个错误。

【问题讨论】:

  • 我认为ssize_t len 应该是size_t len

标签: c pointers


【解决方案1】:

尝试将原型的参数更改为:

ssize_t len

到这里:

size_t len

Source

【讨论】:

    猜你喜欢
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2021-01-04
    • 2010-10-19
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    相关资源
    最近更新 更多