社区
Windows SDK/API
帖子详情
WriteFile丢数据
极速小王子
2011-04-08 10:26:43
我做了个程序,功能如下:
读文件(ReadFile)->读入缓存->加密->将缓存写入(WriteFile)另一个文件
加密文件比原文件大256个字节,但实际情况是,加密文件丢失了不少数据。
我在加密一个 660,828,160 字节 的文件时,加密出来的文件只有400多MB,大约73%。我试了关闭缓存、FileFlushBuffer都无法写全数据。
各位有遇到这种情况没?如何解决?
...全文
157
6
打赏
收藏
WriteFile丢数据
我做了个程序,功能如下: 读文件(ReadFile)->读入缓存->加密->将缓存写入(WriteFile)另一个文件 加密文件比原文件大256个字节,但实际情况是,加密文件丢失了不少数据。 我在加密一个 660,828,160 字节 的文件时,加密出来的文件只有400多MB,大约73%。我试了关闭缓存、FileFlushBuffer都无法写全数据。 各位有遇到这种情况没?如何解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
极速小王子
2011-12-22
打赏
举报
回复
问题已经解决了,磁盘空间满了
CppFile
2011-04-08
打赏
举报
回复
楼主的加密算法是自己写的?
那么在文件写入的时候,观察下返回值,看到底函数写入了多少字节啊!如果没写完,继续写啊
极速小王子
2011-04-08
打赏
举报
回复
加密后的文件应该比原文件大256字节。
如果加密后文件比原文件都还小,那肯定解密不出来了
CppFile
2011-04-08
打赏
举报
回复
有些加密算法,是等长的,有些则不是
CppFile
2011-04-08
打赏
举报
回复
楼主的意思是,原文件660,828,160字节,加密后变为400多MB
这都不是问题,关键问题是,你从加密后的文件解密出来,是不是原文件?
ccrun.com
2011-04-08
打赏
举报
回复
这取决于你的加密方式.
C++中
Write
File
和Read
File
使用
读写文件是每个Windows软件开发人员都需要做的工作。可见这项工作是非常重要的,毕竟各种各样的
数据
都需要保存起来,以便作各种各样的分析,或者通过网络传送给别人。像大家用BT下载的电影,在那个BT软件里,就需要不断从网络里接收到
数据
,然后再把这些
数据
保存到文件里合适的位置,就可以生成跟发行者那里一样的文件,这样才可以播放出来。又比如我在玩《征途》的游戏里,刚刚打开游戏时,它就不断从服务器上下载更新
当调用系统的
write
函数后为何
数据
还是会有
丢
失
数据
的风险
原文 在没接触操作系统原理之前一直不太明白这个问题,看一些io相关的资料上面写着的缓冲区概念也很模糊,现在才发现这些设计都是有它的原因的。写上层应用的我们是不关心读写函数操作系统的实现,比如要写一个
数据
库软件,用户通过你提供的操作界面或者api产生
数据
存储硬盘,有些环节是会导致
数据
丢
失的,为什么会
丢
失,以及怎么合理使用缓冲区来提升应用整体的性能。 一般我们口中的软件是构建在操作系统之上的应用,这种应用所使用的接口归根结底都是对操作系统进行调用,存储
数据
时调用系统的
write
,读
数据
时调用read,系统.
解决安卓蓝牙快传大量
数据
出现部分
数据
丢
失问题
最近自己做一个计步器,需要从从机(arduino uno + mpu6050 + hc-05)接收
数据
,每一秒钟接收20组长度为20字节左右的
数据
,在串口上观察
数据
输出结果正常,如图1: 但是当利用蓝牙传
数据
的时候,上位机端(安卓手机客户端)就会出现
数据
丢
失的问题,如图: 可以发现,这个
数据
丢
的特别严重,既然串口上面输出的结果是正确的,那么证明单片机本身没有任何问题。我把目光转移到了蓝
Go:goroutine 与channel一起使用所遇到的
数据
同步问题
当开启协程之后,主线程任务已经完成,那么就会造成
数据
不同步,
数据
丢
失的问题。然后,考虑在协程中加上互斥锁。好像可以解决一些,但是,不稳定。10次大概8、9中。直接上代码。 案例: 1、开一个协程
write
DataTo
File
,随机生成30~1000个
数据
,存放到文件中 2、当
write
DataTo
File
完成写1000个
数据
到文件后,让sort协程从文件中读取1000个文件,并完成排序,重新写入到另外一个文件中 package main import ( "encoding/json" "f
Golang文件写入
数据
断电
丢
失
Golang在使用写入文件,或是直接使用文件接口读写文件时,在写入后立刻断电,重启后文件存在,但是为空,没有任何
数据
,造成了
数据
丢
失,代码如下: 原因及解决 操作系统为了系统性能考,写入文件并不会直接写入到磁盘,而是写入到缓存中,当满足一定条件时,一次性写入磁盘。实际上操作系统也提供一些API可以将缓存写入磁盘,因此Golang对其进行了封装。使用时只需要在打开文件时增加 标识就可以 完整代码如下: 参考文献 [1]. studygolang . Go语言标准库 - 6.1 文件 I/O . https:
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章