Linux字符设备驱动程序(二)---------实现open,read,write,llseek函数

1.open函数

我们从inode中获取scull_dev指针,并将其赋给filp->private_data,这样在其它文件函数中便可以知道当前正在操作的设备文件。

如果是只写方式打开文件,我们还要清空设备文件的内存。


2.read函数

从对应设备中读取内容,这里要判断当前文件位置f_pos和读取的长度count在文件中是否有内容,如果没有内容返回0,示意文件结束。


3.write函数

判断要写入的位置是否有内存,如果没有内存要分配内存。写入成功后要更新文件长度dev->size


4.llseek函数

移动filp中的当前文件指针。


更详细的说明在注释中给出。


实现了open,read,write,llseek函数后scull.c代码如下:

#include
#include
#include

#include     /* printk() */
#include         /* kmalloc() */
#include         /* everything... */
#include     /* error codes */
#include     /* size_t */
#include

你可能感兴趣的:(Linux/Unix,指针,函数,linux,内核)