gpt4 book ai didi

c++ - 使用内存映射技术的日志记录机制

转载 作者:行者123 更新时间:2023-11-28 08:31:32 24 4
gpt4 key购买 nike

只需创建所需大小的文件映射(CreateFileMapping 或 mmap),将行写入缓冲区并在达到最大数量时重新开始。-- 你对 write-a-circular-file-in-c 的回答。

我也在编写 LogWriter 模块。在这种情况下,我使用 mmap() 将整个文件映射到内存。

我正在维护 Read 和 Write 指针。我想以追加模式将日志写入文件。然后,当记录器服务第一次启动时,它会附加日志。但是当我下次运行该服务时系统关闭时,它不会在最后附加数据。即使系统关闭,我也想保持写入和读取偏移量。如何实现这个..?

如何找到写入日志文件的数据量。 ??

最佳答案

如何保留文件的前 16 个字节来存储两个 uint64_t 值(当然是按网络字节顺序)。只需将您的读写偏移量保存在那里,当文件打开时它们将始终可用。

当然,如果你希望能够使用像less这样的工具读取文件,这可能是一个小问题,但你没有提到这样的要求所以我假设有没有。

关于c++ - 使用内存映射技术的日志记录机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1795625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com