首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

write函数写入数据的有关问题

2012-03-16 
write函数写入数据的问题如果这个函数的第三个参数小于一共要写的总字节数,那么这个函数会立刻再执行,直到

write函数写入数据的问题
如果这个函数的第三个参数小于一共要写的总字节数,那么这个函数会立刻再执行,直到把所有要写的搜索一遍吗?
是立刻再执行一次这个函数?还是等再重新执行一遍整体程序的时候再写剩下的?

[解决办法]
楼主是用write写什么?
文件还是设备,如果设备的话要看驱动中write的具体实现的
一般设备都是非阻塞的方式的,写操作一般都有缓存队列,如果队列没有满,如果大于你要写得数据,就把你要写得数据都写到我们是不是发送缓存队列中,如果小于你要发送的数据就有多少空间放多少字节了,剩余的要在下一次发送
看你说的例子的实现,可能你的设备有点特别,在实现的时候的第三个参数可能不是代表要写入字节数

[解决办法]
LZ你调用write()写普通文件还是设备文件?我测试过写普通文件的话,跟你测试的一样保存size为8的结构体,在<=8的情况下write()都是立即执行完毕的。如果是写设备文件的话,有可能是这个设备的write()在实现的时候对长度有特殊的要求,所以会造成延迟。

热点排行