在 Windows/NTFS 中附加到文件是原子的吗?

2023-12-01

如果我从多个进程编写一个简单的文本日志文件,它们是否会覆盖/损坏彼此的条目?

(基本上,这个问题UNIX 中文件追加是原子的吗?但适用于 Windows/NTFS。)


您可以在本地文件上获得原子追加。使用 FILE_APPEND_DATA 访问权限打开文件(记录在WDK)。当您省略 FILE_WRITE_DATA 访问时,所有写入将忽略当前文件指针并在文件末尾完成。或者您可以使用 FILE_WRITE_DATA 访问,并在重叠结构中指定它的追加写入(Offset = FILE_WRITE_TO_END_OF_FILE 且 OffsetHigh = -1 记录在WDK).

追加行为在通过不同句柄的写入之间正确同步。我经常使用它来记录多个进程。我确实在每次打开时将 BOM 写入偏移量 0,并附加所有其他写入。时间戳不是问题,可以在需要时对它们进行排序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows/NTFS 中附加到文件是原子的吗? 的相关文章

随机推荐

  • 获取每天创建的条目数

    假设我有一个这样的搜索查询 SELECT COUNT id date created at FROM entries WHERE date created at gt date current date interval 1 week GR
  • 使用 WebView android 读取 Gif 图像

    当我尝试使用 Android 2 3 3 API 10 中的 WebView 读取 gif 图像时 它不是动画的 它显示为静态的 我该如何解决这个问题 有什么我必须更改的设置吗 Activity Main xml
  • Python 中的命名反向引用 (?P=name) 问题

    我在学习 re Python 的一部分 以及命名模式 P name 使我困惑 当我使用re sub 为了对数字和字符进行一些交换 模式 P name 不起作用 但模式 N and g
  • 有条件终止 SAS

    如果满足特定条件 我试图停止 SAS 程序的处理 我创建了一个宏变量 如果该变量 gt 0 5 那么我想要硬停止程序 当前程序看起来像 data a1 set Server a2 run macro1 a1 macro2 t1 t1 gen
  • 实体表不是使用 JPA 2.1 创建的

    我在 Netbeans 中使用 JPA 2 1 来创建我的实体 如果我的数据库没有表 那么它应该从实体创建表 当我部署并运行企业应用程序时 userEntity 表不会出现在我的 mySQL 数据库中 这里有什么帮助吗 下面是我的代码 持久
  • 关于等待超时错误的自定义消息

    我有时会使用 预期条件 功能量角器 1 7 中引入 Use case var EC protractor ExpectedConditions browser wait EC visibilityOf header displayName
  • Excel 2010 64 位无法创建 .net 对象

    我有一个在 Excel 中使用的简单类库 这是我的课程的简化 using System using System Runtime InteropServices namespace SimpleLibrary ComVisible true
  • 有什么方法可以暂停 firestore 侦听器而不删除它?

    有什么方法可以暂停 firestore 侦听器而不删除它 我有多个 Firebase 侦听器 其中一些侦听器依赖于其他侦听器 这些侦听器会在数据更改时更改或启动其他侦听器 假设我的第一个监听器启动了第二个监听器onSnapshot 第一个听
  • 重载指向两个不同类的指针的赋值运算符

    我的问题 我正在尝试重载指向两个不同类的指针的赋值运算符 这是一个例子 dc h ifndef DC H define DC H include ic h class dc double d char c public dc d 0 c 0
  • 一段时间后 AKFFTTap 停止生成数据

    我将 AudioKit 用于录音机应用程序 并向 AKMicrophone 添加了 AKFFTTap 以绘制自定义音频波形 这一切都运行良好 但是经过几次录音后 或者在应用程序录音屏幕打开一段时间后 FFT 数据突然变成全 0 我知道麦克风
  • 如何对出现在硬盘上的目录进行排序?

    在我的硬盘上 例如 目录1 目录2 目录3 目录4 我的代码是 DirectoryInfo dInfo new DirectoryInfo AutomaticsubDirectoryName DirectoryInfo subdirs dI
  • 如何在 Android Studio 中重新包含排除的目录?

    解释了如何在 Android Studio 中排除目录here 它还有一个关于不知道如何再次将其包含回来的警告 现在我需要这样做 当然 我可以再次创建 导入项目 但我想有更好的方法可以做到这一点 有没有 如何 由于没有 将目录标记为在 An
  • Python Selenium使用Windows浏览器上传文件

    我正在使用 selenium 在 Python 中开发一个浏览器自动化项目 我正在尝试将图片上传到页面 我登录 转到该页面 然后单击上传按钮 单击上传按钮后 将打开一个 Windows 文件浏览器 我必须在其中选择文件路径并单击 Windo
  • 如何使用c#以管理员身份运行批处理文件来安装Windows服务

    我创建了一个批处理文件 用于将我的程序安装为 Windows 服务 批处理文件的内容 gt C Project Test InstallUtil exe gt C Project Test ROServerService Server bi
  • 外部主机上的会话变得混乱

    问题听起来像这样 使用会话登录在我的本地主机上工作得很好 但是当完全相同的文件上传到我的主机 hostgator 时 会话不会 或者它们会变得混乱 此外 注销功能在主机上不起作用 我检查过 每个页面都有 session start 在里面
  • 使用 -v 查看调用?

    我的一个 iOS 应用程序遇到严重的链接器问题 请参阅上一篇文章详情 linker command failed with exit code 1 use v to see invocation 一个基本问题是 如何使用 v 查看调用 我可
  • 如何接收来自 Angular Reactive Form 的文件上传?

    我有在 Angular 7 反应式表单中上传文件的模块 我需要反应式表单 因为我需要一起上传文件和其他一些信息 我关注这篇文章 https medium com amcdnl file uploads with angular reacti
  • Scala 整数列表列表

    我是 Scala 新手 有点困惑 给定一个列表列表List List Int 如何调用每个列表的某个元素的特定索引 例如每个列表的第二个元素 Simple val ints List List 1 2 List 3 4 val result
  • 如何通过网络浏览器检查应用程序是否已安装?

    这是针对 Windows 的 我有一个要转换为 AIR 的 Flash 应用程序 我使用 NSIS 构建了一个强制安装程序 它运行良好 不过 我希望在网站上有一个图标 用于检查应用程序是否已安装并询问用户是否希望运行它 如果未安装 他们可以
  • 在 Windows/NTFS 中附加到文件是原子的吗?

    如果我从多个进程编写一个简单的文本日志文件 它们是否会覆盖 损坏彼此的条目 基本上 这个问题UNIX 中文件追加是原子的吗 但适用于 Windows NTFS 您可以在本地文件上获得原子追加 使用 FILE APPEND DATA 访问权限