驱动程序函数不会在c中执行,但其他函数会在

时间:2018-10-04 05:04:03

标签: c linux-kernel

我正在制作设备驱动程序。我添加了与阅读和学习最相关的代码。我可以输入并使用阅读功能。但是由于某些原因,无法输入llseek。我在llseek的文件操作中列出了它,并将其与我想要的功能匹配,参数似乎很好?

在dmesg中,我得到“ inside READ”,但没有“ inside SEEK”,也没有错误。在终端或编译期间也没有错误。我也不太了解c。

主要

users

在我的设备驱动程序中:

int file = open("/dev/simple_char_driver", O_RDWR);

//read example, this works fine
printf("Enter how many bytes you want to read: \n");
int len[10];
scanf("%d", len);
char *ptr = malloc(*len * sizeof(char));

read(file, ptr, *len);

//llseek example, doesn't enter
int offset [10];
int whence [10];
scanf("%d",offset);
printf("Enter a value for whence: \n");
scanf("%d",whence);

llseek(file, offset, whence); 

1 个答案:

答案 0 :(得分:1)

关于第二个问题:
Ajaxsubmit()被行缓冲。这意味着遇到换行符(printk)时,将刷新缓冲区(内容将发送到日志文件)。否则,只有在程序退出时才能执行。
因此,请在您的\n语句中使用“ \ n”。