gpt4 book ai didi

c++永久离线计数器

转载 作者:行者123 更新时间:2023-11-30 04:56:20 24 4
gpt4 key购买 nike

我有一个嵌入式服务器,可以随时拔掉。是否有一种优雅的方式来实现事务性 c++ 计数器?在最坏的情况下,它应该返回以前的 ID。

我有一个嵌入式服务器,它会定期生成报告文件。服务器没有时间或网络连接,所以我想增量生成报告文件。但是,在下载报告文件后,我想删除报告文件,同时保持计数器:

report00001.txt
report00002.txt
report00003.txt
report00004.txt
// all the files have been deleted
report00005.txt
...

我想使用这样的代码:

 int last = read_current_id("counter.txt");
last++;
// transaction begin
write_id("counter.txt", last);
// transaction end

最佳答案

(假设您的服务器正在运行某种 unixy 操作系统)

您可以为此尝试使用 write-and-rename 习惯用法。

你所做的是将新的计数器值写入不同的文件,比如 counter.txt~,然后是 rename临时文件到常规 counter.txtrename 保证文件的新版本或旧版本将随时存在。

您还应该使用 sync 挂载您的文件系统选项,以便文件内容不会缓冲在 RAM 中。但是请注意,这会降低性能,并可能缩短闪存的使用生命周期。

关于c++永久离线计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52608531/

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