c - 如何将程序日志输出到SD卡而不造成损坏

标签 c embedded-linux

我正在开发一个在带有 SD 卡存储的小型 Linux 计算机上运行的应用程序。该应用程序在启动时自动运行,我们希望能够轻松检查它生成的日志。通常我只会写入一个文件,因为这似乎也是大多数普通软件会做的事情。但我对此犹豫不决,因为我认为连续写入日志是一个坏主意,因为存储有 SD 卡。

问题是,有时当我们想要检查系统上发生的情况(例如出于调试目的)时,我们会通过 SSH 停止应用程序,然后再次启动它,以便我们可以看到输出消息。

所以我的问题是:有没有办法将日志写入某种循环列表,然后通过 SSH 连接到系统时可以查看该列表?如果重要的话,应用程序是用 C 和 C++ 编写的。

最佳答案

您的应用程序是在 Raspberry Pi 上吗?

Linux 操作系统以及所有其他技术可能会向 SD 卡写入大量数据,相比之下,您每小时 500 KB 的速度简直微不足道。

我个人只会将程序记录到文件中。

如果您确实不想这样做,您还有其他一些选择:

  • 让应用程序通过互联网将日志发送到某个服务,然后您可以监控该服务
  • 让您的应用程序将日志存储在内存缓冲区中,然后在达到某个阈值时写入文件。在本地主机上公开一个端点,该端点监听消息,并在收到消息时将内存中的内容写入文件。这使您可以查看当前内存中日志的日志文件,而无需等待。

关于c - 如何将程序日志输出到SD卡而不造成损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39337538/

相关文章:

c - 非精确 STM32F303VC 定时器时钟

c - 找到C程序的输出

linux - 对 "three successive writes: bytes 10, bytes 32, bytes 54"感到困惑?

embedded-linux - 设备上没有剩余空间?

c++ - 程序从哪里分配内存?

c - 在 C 中移动节点字段点对点编码

linux - qvfb 编译错误 - 对 `png_create_write_struct' 的 undefined reference

webserver - 在哪里可以找到Rebol 3微型Web服务器?

linux-kernel - 如何找到/dev/console 连接到哪个物理设备?

c - 为什么回调函数中的值不同 - 不好?