【问题标题】:Add lines at the end of file在文件末尾添加行
【发布时间】:2009-11-07 17:00:07
【问题描述】:

我想在每个事件的文件末尾添加日志,并在其大小达到 255 Mo 时创建一个新日志。

例如,当前文件可能是 /var/log/foo.2:

/var/log/foo.0.log (full log file)
/var/log/foo.1.log (full log file)
/var/log/foo.2.log

您是否对 C 源代码有所了解?

谢谢

【问题讨论】:

  • 你现在有什么代码?这不是“请为 me.com 做我的功课”。到目前为止,您编写的代码有什么问题?
  • 呃,这对我来说听起来不太像家庭作业。
  • 同意,但在你被否决投票被遗忘之前......只需谷歌“c文件操作”阅读,如果你知道任何C你应该能够理解这一点,否则只是问你教授寻求帮助
  • @GMan:由于这是大多数日志库的内置功能,因此没有太多理由重新发明它。功课是最大的原因。
  • 实际上正确的理由是:我是 C 的大菜鸟。所以即使这对你来说很简单,对我来说也很难,我很高兴阅读你的每一个 cmets 和答案, 真的。在这方面,我注意到这不是一项义务,而是一项个人任务。谢谢。

标签: c file logging


【解决方案1】:

使用

打开文件时
File *fopen(const char *filename, const char *mode);

选择“a”作为模式。这将打开或创建一个文本文件以在文件末尾写入。

【讨论】:

  • Afaik 它应该说“FILE *fopen(...)”。
【解决方案2】:
【解决方案3】:

如果您只想拥有该功能,请查看log4c

如果你想知道它是如何工作的,你也可以看看它的代码。

如果您需要为您的应用程序专门定制的代码...

基本上,您需要将fopen"a" 选项一起使用,其中a 代表追加。

要确定文件的大小,请使用ftell 或其他特定于平台的函数,因为据我所知,C 标准中没有文件大小信息方法。或者你走很长的路,只是从文件中读取所有字节并计算它们......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多