C_and_CPP 版 (精华区)

发信人: SwordLea (飞刀李), 信区: C_and_CPP
标  题: Re: 问一个c语言中文件的操作的问题
发信站: 哈工大紫丁香 (Thu Jul 15 14:10:25 2004), 转信

想高效地处理文件莫过于使用FileMapping()或者mmap(),前者适用于Win32平台,
后者适用于Linux/Unix平台。
至于对记录文件的处理,你所说的方法仅适用于小文件,如果记录条数过多,可
以:
1、“读写”方式打开文件
2、定位文件中需要修改记录绝对偏移
3、如新内容size小于、等于原内容size,直接修改,并酌情将后面的内容
   MemMove到新位置;否则,应该先MemMove后面的数据到安全的地方,修
   改后再MemMove回来。
4、关闭文件。

说明:删除操作只需要将后面的记录MemMove到当前位置覆盖便可;
      增加操作与修改操作(当新size大于原size时)相同。
注意:有些时候,需要重新设置FileSize,具体函数请根据所应用平台查找。
【 在 wfine (飞扬) 的大作中提到: 】
:     假使我现在一个商品记录文件good.dat,有1万条记录,现在想用c对这些记录作
: 增、删、改操作。
:    最简单的做法是,打开文件good.dat,将所以的记录放在一个数组(或链表)里,然后
: ...................

--
    I came, I saw, I conquered ! — Caesar


※ 修改:·SwordLea 于 Jul 15 14:11:57 修改本文·[FROM: 202.118.246.241]
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.246.241]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:6.002毫秒