日期:2014-05-16  浏览次数:20789 次

Linux C下的write函数写入文本时能插入吗
open时以可读写并且Append的形式打开。
先用write函数向文本写入"111",然后调用lseek定位到文件首,再用write函数向文本写入"222".最后结果却是"111222",但我希望是显示"222111",也就是想在写入的时候先定位再插入数据,请问这样可以实现吗?先谢谢大家!

------解决方案--------------------
用mmap将文件映射到内存,然后象访问内存数组一样将文件向后移动要插入的位置,最后写入新的文件内容。
如果需要对文件进行频繁插入、删除或者修改工作,就应该用mmap这招。如果只是需要偶尔这样处理,可以考虑楼上的招数。