Я пытался протестировать функцию proc_create (), поэтому я пытаюсь понять структуру file_operations, но, к сожалению, я продолжаю сталкиваться с ошибками указателя, и на данный момент я не могу понять, что вызывает.Это код:
static size_t read_proc(struct file *filp,char *buf,size_t count, loff_t *offp)
{
if(count>temp)
{
count=temp;
}
temp=temp-count;
copy_to_user(buf,msg, count);
if(count==0)
temp=len;
return count;
}
struct file_operations proc_fops = {
.read = read_proc
};
Это перезапуск make-файла:
make -C /lib/modules/4.15.0-29-generic/build M=/home/ubuntu/Desktop/XX3 modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-29-generic'
Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
CC [M] /home/ubuntu/Desktop/XX3/proc.o
/home/ubuntu/Desktop/XX3/proc.c:27:9: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.read = read_proc
^~~~~~~~~
/home/ubuntu/Desktop/XX3/proc.c:27:9: note: (near initialization for ‘proc_fops.read’)
cc1: some warnings being treated as errors
scripts/Makefile.build:339: recipe for target '/home/ubuntu/Desktop/XX3/proc.o' failed
make[2]: *** [/home/ubuntu/Desktop/XX3/proc.o] Error 1
Makefile:1552: recipe for target '_module_/home/ubuntu/Desktop/XX3' failed
make[1]: *** [_module_/home/ubuntu/Desktop/XX3] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-29-generic'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2
root@ubuntu:/home/ubuntu/
Просто ясно, что это ядро 4.20, работающее на Ubuntu, а другие модули ядра работают без сбоев, поэтому яПредположим, это то, что я вызвал.Приветствия за помощь
РЕДАКТИРОВАТЬ: Да, я вижу это сейчас.Двойное 's' на size_t мой плохой