应用层的读写函数与驱动的读写函数关系的联系

发布于 2022-09-19 08:11:43 字数 474 浏览 16 评论 5

是这样的一个问题:

大家都知道在写驱动时读函数是 static int SSX30E_READ(struct file *file, char *buf, size_t len, loff_t *ppos)(这是我自已写的驱动中的一个读函数)。

而在应用层的IO的读函数是 read(fd,&num,sizeof(int))

我想问的是 在应用层的读函数只有三个参数,而在驱动中有四个。当调用驱动程序的时候,只需要传入三个参数么?

另一点,假设static int SSX30E_READ(struct file *file, char *buf, size_t len, loff_t *ppos)的返回值是0,在应用层调用read(fd,&num,sizeof(int))是驱动的返回值决定的吗?(也就是0)

刚开始学写驱动,很多东西很困惑,感觉不难,但苦于自已水平不够,希望各位大大,高手们指导!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

吐个泡泡 2022-09-20 01:51:28

应该返回读取到的数据量吧

尹雨沫 2022-09-20 01:23:33

static int SSX30E_READ(struct file *file, char *buf, size_t len, loff_t *ppos)的返回值是

未能读到的数据,不是read/write系统调用的返回值

自找没趣 2022-09-20 00:28:04

这个loff_t *ppos偏移量是相对文件来说的,你不可能每次读文件都从头开始读起吧,

短叹 2022-09-19 21:06:35

回复 2# wmmy2008

   感谢你的回答!

再可℃爱ぅ一点好了 2022-09-19 20:34:11

1. 关于read 的流程 以及相关参数,需要看虚拟文件系统VFS的流程了。。
2.read/write系统调用的返回值,就是驱动的返回值。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文