gpt4 book ai didi

c - 策略在终止时刷新文件输出

转载 作者:可可西里 更新时间:2023-11-01 09:47:00 25 4
gpt4 key购买 nike

我有一个监控高速通信链路并将日志写入文件(通过标准 C 文件 IO)的应用程序。对到达链接的消息的响应时间很重要,因此我有意不在每条消息处 fflush 文件,因为这会减慢我的响应时间。

然而,在某些情况下,我的应用程序会“暴力”终止(例如,通过终止进程),并且在这些情况下,最后几条日志消息不会被写入(即使通信链路已经安静了一段时间)。

我可以使用哪些技术/策略来确保我的大部分数据都已刷新,同时又不影响响应速度?

编辑:应用程序在 Windows 上运行

最佳答案

使用线程是对此的标准解决方案。让您的数据收集代码将数据写入线程安全队列,并使用信号量向写入线程发出信号。

然而,在你去那里之前,仔细检查你关于 fflush() 会很慢的断言。大多数操作系统都有文件系统缓存。它使写入速度非常快,就像简单的内存到内存块复制一样。数据延迟写入磁盘,您的崩溃不会影响它。

关于c - 策略在终止时刷新文件输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/468944/

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