gpt4 book ai didi

c - 原子写入 64kB

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:18 25 4
gpt4 key购买 nike

我需要在现有文件的中间自动写入大约 64 kB 的数据。仅此而已,否则什么都不应该写。如何在 Linux/C 中实现?

最佳答案

我认为这是不可能的,或者至少没有任何接口(interface)可以保证作为其契约的一部分写入是原子的。换句话说,如果现在有一种方法是原子的,那就是一个实现细节,并且依赖它保持这种方式是不安全的。您可能需要找到其他解决方案来解决您的问题。

但是,如果您只有一个写入进程,并且您的目标是其他进程看到完整的写入或根本没有写入,您可以只在文件的临时副本中进行更改,然后使用 rename 以原子方式替换它。任何已经打开旧文件的文件描述符的读者都将看到旧内容;任何按名字新打开它的读者都会看到新内容。部分更新永远不会被任何读者看到。

关于c - 原子写入 64kB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11811905/

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