Написание драйвера Linux, несовместимый с file_operations тип ошибки указателя - PullRequest
1 голос
/ 26 мая 2019

Я пишу простой драйвер 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, который у меня есть, но я все еще получаю эту ошибку.

1 Ответ

1 голос
/ 26 мая 2019

Попробуйте изменить параметр прототипа так:

ssize_t len

на это:

size_t len

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...