gpt4 book ai didi

c++ - 用不同的标志打开同一个文件两次?

转载 作者:太空宇宙 更新时间:2023-11-04 12:21:37 24 4
gpt4 key购买 nike

我能否使用不同的标志(在本例中,一个带有 FILE_FLAG_NO_BUFFERING,一个不带)打开同一个文件两次(使用 CreateFileA)?

详细来说,是这样的:在启动期间,我创建了一个临时文件(使用 FILE_FLAG_DELETE_ON_CLOSE)。我是按顺序填的,这部分不想做unbuffered IO。然后,在进程运行时,我想使用无缓冲 IO 访问该文件,因为我有自己的缓存逻辑。因此,我正在考虑再次打开同一个文件,这次是使用 FILE_FLAG_NO_BUFFERING,然后关闭旧句柄。我想以这种重叠的方式这样做有两个原因:

  1. 并发。如果我在打开新 handle 之前关闭旧 handle ,其他人可能会在此期间弄乱我的文件。
  2. FILE_FLAG_DELETE_ON_CLOSE 会在我关闭第一个句柄而不打开另一个句柄时删除我的文件。这是我可以解决的一个小麻烦。

最佳答案

请记住在共享模式中包含 FILE_SHARE_DELETE。我认为 FILE_FLAG_DELETE_ON_CLOSE 是唯一影响不仅仅是“您的”句柄的标志。

关于c++ - 用不同的标志打开同一个文件两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4686058/

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