C语言 管理日志文件大小



我有一个记录其活动的程序。
我想实现一个日志文件机制,将日志文件保持在一定大小,比如说 10 MB。
日志文件本身只保存程序执行的命令;这些命令的长度是可变的。

现在,该程序在Windows环境中运行,但我可能很快就会将其移植到UNIX上。

我想出了两种管理日志文件的方法:

1.保留多个较小大小的文件,如果新命令超过当前文件长度,请将最旧的文件截断为零大小,然后开始写入。

2. 在文件中保留一个标头,该标头保存有关文件中第一个命令的元数据,以及文件中要写入的下一个位置。另外,我认为每个命令都应该以这种方式保存有关其长度的元数据。

我的问题如下:

  • 在效率方面,您将使用哪种方法,为什么?
  • 有没有一个 unix 命令/功能很容易?

非常感谢您的帮助,
虚无。

在UNIX/Linux平台上,有一个管理日志文件的logrotate程序。例如,可以在此处找到详细信息:http://linuxcommand.org/man_pages/logrotate8.html

最新更新