怎么将文本文件截断,1024K大小,删除前512,保留后512
如何将文本文件截断,1024K大小,删除前512,保留后512
现在需要使用C语言实现将文本文件截断的功能,比如
将1024K大小的文本文件,将其前512k内容删除,保留后512K内容,然后
从第512k处为新文件的文件头。
有ftruncate函数实现改变文件大小的功能,但好像是保留文件开头的内容,删除后面的
不知道怎么样实现,当然也可以使用将后512k复制到新文件,在删除老文件,在重命名的方法,
不知道linux上有没有专用的函数,或者通过设置文件读取位置来实现
主要是想完成日志的功能,日志是按时间顺序记录的,当日志文件超过一定的大小,肯定要对
进行相应的处理,不可能无限大下去,肯定要删除比较旧的日志,不知道linux系统是怎样实现日志
内容操作处理的。
------解决方案--------------------
读取该文件,略过前512k内容,保留后面的。然后将该文件清空,从头开始将保留在内存中的后512k写入其中。
------解决方案--------------------
fseek(file,512L,0)大概就到一半处了,然后把剩下的读出来写到一个文件里,如果想用原来的名字,就重命名覆盖掉初始的就行了
可以放一个脚本里,就相当于一个工具了
我也是初学,不对的话希望批评指正
------解决方案--------------------
现在需要使用C语言实现将文本文件截断的功能,比如
将1024K大小的文本文件,将其前512k内容删除,保留后512K内容,然后
从第512k处为新文件的文件头。
有ftruncate函数实现改变文件大小的功能,但好像是保留文件开头的内容,删除后面的
不知道怎么样实现,当然也可以使用将后512k复制到新文件,在删除老文件,在重命名的方法,
不知道linux上有没有专用的函数,或者通过设置文件读取位置来实现
主要是想完成日志的功能,日志是按时间顺序记录的,当日志文件超过一定的大小,肯定要对
进行相应的处理,不可能无限大下去,肯定要删除比较旧的日志,不知道linux系统是怎样实现日志
内容操作处理的。
------解决方案--------------------
读取该文件,略过前512k内容,保留后面的。然后将该文件清空,从头开始将保留在内存中的后512k写入其中。
------解决方案--------------------
fseek(file,512L,0)大概就到一半处了,然后把剩下的读出来写到一个文件里,如果想用原来的名字,就重命名覆盖掉初始的就行了
可以放一个脚本里,就相当于一个工具了
我也是初学,不对的话希望批评指正
------解决方案--------------------