利用linux的V4L获取图像数据时,用READ和MMAP两种方式的一些不理解 20

用READ方式的时候,直接用read(vd->fd,vd->pFramebuffer,size)就可以了,但是用MMAP方式的时候为什么还要用ioctl(vd->fd,V... 用READ方式的时候,直接用read (vd->fd, vd->pFramebuffer, size)就可以了,但是用MMAP方式的时候为什么还要用ioctl (vd->fd, VIDIOCMCAPTURE, &(vd->vmmap)和ioctl (vd->fd, VIDIOCSYNC, &vd->vmmap.frame)呢。据我所知,VIDIOCMCAPTURE和VIDIOCSYNC来截取和同步图像的,为什么用read方式就不需要截取和同步图像呢? 展开
 我来答
zxc570157491
2012-04-17 · TA获得超过100个赞
知道答主
回答量:99
采纳率:0%
帮助的人:93.4万
展开全部
使用read和write需要在用户进程的缓冲和内核的缓冲区之间进行一次数据的拷贝过程是非常的浪费CPU的。而使用mmap可以将内核的缓冲区直接的映射在用户的进程内存中,减少了一次无价值的数据复制过程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式