readfile函数读取数据

haifeng3326 2014-07-28 02:17:43
外部设备通过USB口连接电脑写入数据,我使用ReadFile函数异步方式读取数据,每次读取1字节、8字节、1024字节都没问题,但是都是只能读一次,第二次又阻塞到那了,缓冲区里应该还有数据的啊,为什么读不到了。自己写了个测试程序读本地文件就没问题。
...全文
359 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 5 楼 haifeng3326 的回复:
[quote=引用 4 楼 zengraoli 的回复:] [quote=引用 3 楼 haifeng3326 的回复:] 难道读一次就清空缓冲区了?
不清空,但是没有信号,ReadFile就阻塞了。 等到下次再有WriteFile的信号时,你从缓冲区中取出数据,就会发现还存有你上次滞留的。[/quote] 有什么解决的办法吗,还是只能这样了[/quote] 一次性读完,然后放到别的缓冲区中在处理
jmppok 2014-07-28
  • 打赏
  • 举报
回复
为啥不一次读完? 读出来后再分析
haifeng3326 2014-07-28
  • 打赏
  • 举报
回复
引用 4 楼 zengraoli 的回复:
[quote=引用 3 楼 haifeng3326 的回复:] 难道读一次就清空缓冲区了?
不清空,但是没有信号,ReadFile就阻塞了。 等到下次再有WriteFile的信号时,你从缓冲区中取出数据,就会发现还存有你上次滞留的。[/quote] 有什么解决的办法吗,还是只能这样了
  • 打赏
  • 举报
回复
引用 3 楼 haifeng3326 的回复:
难道读一次就清空缓冲区了?
不清空,但是没有信号,ReadFile就阻塞了。 等到下次再有WriteFile的信号时,你从缓冲区中取出数据,就会发现还存有你上次滞留的。
haifeng3326 2014-07-28
  • 打赏
  • 举报
回复
难道读一次就清空缓冲区了?
haifeng3326 2014-07-28
  • 打赏
  • 举报
回复
引用 1 楼 zengraoli 的回复:
对面没进行writefile你当然不能再读了啊
比如writefile写了8个字节,我第一次读了1个字节,第二次再去读,为什么读不到啊?读本地文件就可以,两者机制不一样吗
  • 打赏
  • 举报
回复
对面没进行writefile你当然不能再读了啊

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧