我有一组用C语言编写的独立程序,我希望它们都将日志写到同一个文件中。显然是控制访问的问题。他们中的两个或更多人最终可能同时写作。
最务实的方法是什么?
我遇到了使用pthread/mutex/etc的解决方案,但对于类似的东西来说,这听起来过于扼杀了实现。
我也在查看syslog,但不知道这是否真的是为了我需要做的事情?
我觉得我需要一个守护进程服务来接收消息并控制它们的写入。我不知道这是否已经存在。
最佳答案
我也在查看syslog,但不知道这是否真的是为了我需要做的事情?
是的
我觉得我需要一个守护进程服务来接收消息并控制它们的写入。我不知道这是否已经存在。
它存在于UNIX衍生物(包括Linux)中,被称为…syslogd
更严重的是,syslog
函数旨在将消息传递给syslogd
守护进程,该守护进程将根据其配置文件路由消息。最常见的用途包括将其写下到文件或系统控制台(特别是在没有人能够确定文件系统是否仍然可以访问的情况下,用于紧急级别的消息)。Syslog系统可能具有比您所要求的更多的功能,但它是一个非常健壮且经过广泛测试的软件。此外,它肯定已经在您的系统上处于活动状态,所以您应该有一个强大的理由来滚动自己的系统,而不是使用它。
关于c - C对日志文件的多重写访问(Linux env),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49860937/