chunguang8256
春光123
采纳率0%
2015-04-14 10:26

linux下把数组内容写入文件,读出文件的内容发现和数组里不一样

1
在linux下,可执行程序循环把数组的内容写入文件,写之前验证过数组里面没有负数,写完后立即计算文件的md5值。
写入文件并保存一段时间后读出,发现数组成员有负数的情况,这时再计算md5值,和原来记录的不一样了。
这个文件比较大,有6.8G,不知道哪位曾碰到过这样的问题,我怀疑是不是与文件系统的缓存有关,原来计算md5时缓存里的内容还没完全写入到文件?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • devmiao devmiao 6年前

    用文件比较工具判断下,看看哪里写错了。

    点赞 2 评论 复制链接分享
  • chunguang8256 春光123 6年前

    数组在写入文件之前都遍历检验过,没有小于0的,但是写到文件后,再从文件中读出,就有小于0的情况。
    这个数组是栈上的局部变量,有1G那么大,用的又是fwrite,要经历用户buffer -> Clib buffer - > 内核buffer -> 磁盘缓存这么多过程,估计是缓存的影响,
    就是不知道内核的哪些配置影响缓存。

    点赞 1 评论 复制链接分享
  • u012377333 一枪尽骚丶魂 6年前

    额,绝对是你自己读写程序的问题,你是以b方式打开的文件么?

    点赞 1 评论 复制链接分享
  • yyszh yyszh 6年前

    具体要看你代码才能知道问题出在哪。请贴出代码或伪代码。

    点赞 评论 复制链接分享
  • yyszh yyszh 6年前

    数组可以一次性写入啊,为啥要用循环?

    点赞 评论 复制链接分享
  • oyljerry oyljerry 6年前

    写入以后读出数据有变化,这不太可能,除非是还有程序在写文件等

    点赞 评论 复制链接分享

相关推荐