找回密码
 注册
查看: 1538|回复: 5

求教:linux设备驱动中,文件操作write函数的问题

[复制链接]
发表于 2005-7-9 23:19:44 | 显示全部楼层 |阅读模式
请教各位两个个问题:
(1)Linux设备驱动中,文件操作write函数的原型是:ssize_t (*write) (struct file*, const char *,size_t,loff_t).
如果下面结构体中
struct file_operations test=
{
......
write: write_test,
......
}
write_test函数只是需要打印出句子(printk("......")),根本不需要其他参数,那么write_test的原型是不是还是要写成上面的那种带4个参数的形式?
(2)如果在应用程序中,调用的write接口的函数是不需要参数的(就像上面write_test一样).那么该如何在应用程序中来调用它呢?  那4个参数该怎么写啊?write(?,?,?,?)

正在看"Linux设备驱动程序",可是好像上面都没提到.很头痛啊.麻烦各位指点迷津啊.谢谢了!!
发表于 2005-7-10 08:23:58 | 显示全部楼层
第一个问题:是。
第二个问题:楼主看这里
http://www.linuxeden.com/edu/doctext.php?docid=3299
回复

使用道具 举报

 楼主| 发表于 2005-7-10 11:31:21 | 显示全部楼层

还是有点不明白

谢谢二楼提供的信息!
但还是有点不明白
下面是链接文章中的话:

"字符设备的读写操作相对比较简单,直接使用函数read( )和write( )就可以了。但如果是块设备的话,则需要调用函数block_read( )和block_write( )来进行数据读写"

无论任何情况,read()write()都不带参数,这样可以?我在应用程序中试了,不行的样子.是不是我理解有误?
回复

使用道具 举报

发表于 2005-7-10 12:10:51 | 显示全部楼层
无论是read还是write都需要带参数的,

你看看函数的原型

注定不带参数是不行的
回复

使用道具 举报

 楼主| 发表于 2005-7-10 13:35:10 | 显示全部楼层

假如write函数执行是不需要参数的话,该如何填充参数?

如一楼所述中的问题(2)情况
改如何解决?
回复

使用道具 举报

发表于 2005-7-10 13:41:14 | 显示全部楼层
………#¥……#……%&……%(

没有参数就不用带,这么简单………
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-7-23 23:57 , Processed in 0.046187 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表