免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2906 | 回复: 15
打印 上一主题 下一主题

关于copy_to_user的问题,请大虾帮忙看下。。。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-29 15:02 |只看该作者 |倒序浏览
我写了一内核模块,是捕获I/O的,现在我需要把数据传到用户态空间。使用了copy_to_user.可是这个方法的第一个参数需要是接受数据的buf,我们没法知道从底层捕获到的数据多大导致用户态程序无法确定分配多大的buf啊,各位帮帮我,谢谢。。。。。。

论坛徽章:
0
2 [报告]
发表于 2009-04-29 15:07 |只看该作者
原帖由 liuyongxyz 于 2009-4-29 15:02 发表
我写了一内核模块,是捕获I/O的,现在我需要把数据传到用户态空间。使用了copy_to_user.可是这个方法的第一个参数需要是接受数据的buf,我们没法知道从底层捕获到的数据多大导致用户态程序无法确定分配多大的b ...

为什么会无法知道底层捕获到的数据有多大呢?
如果这都无法知道,那driver中怎么分配空间来存放通过I/O得到的数据呢?
yilan 该用户已被删除
3 [报告]
发表于 2009-04-29 15:15 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2009-04-29 15:15 |只看该作者
不好意思,底层是知道的,可是上面我们无法知道从而没法分配一个合适的BUF

论坛徽章:
0
5 [报告]
发表于 2009-04-29 15:18 |只看该作者
上层可以循环read一个固定的buf大小,直到read返回0为止。。。
当然也需要kernel module中对应的read要配合。

ldd3上好像有对应的例子吧。

论坛徽章:
0
6 [报告]
发表于 2009-04-29 15:19 |只看该作者

回复 #3 yilan 的帖子

恩,原先我也是这么想的,可是这里是读取我在底层做的一个I/O缓存链表,第二次去再读上次没读完的链表不太方便吧?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
7 [报告]
发表于 2009-04-29 15:22 |只看该作者
原帖由 liuyongxyz 于 2009-4-29 15:19 发表
恩,原先我也是这么想的,可是这里是读取我在底层做的一个I/O缓存链表,第二次去再读上次没读完的链表不太方便吧?


上次发起read请求的时候,通常会有请求长度的。
yilan 该用户已被删除
8 [报告]
发表于 2009-04-29 15:25 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2009-04-29 15:28 |只看该作者

回复 #7 Godbach 的帖子

正是这个read长度我无法确定的

论坛徽章:
0
10 [报告]
发表于 2009-04-29 15:31 |只看该作者

回复 #8 yilan 的帖子

我在底层是将I/O的每次对某一文件的写操作链成链表缓存,上层有一个代理程序不停来取这个链表,当然是一次取一个节点比较好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP