[英]Opening the same file twice with different flags?
是否可以使用不同的标志(在这种情况下,一次使用FILE_FLAG_NO_BUFFERING,一次不使用)来两次打开同一文件(使用CreateFileA )?
详细地说,是这样的:在启动期间,我创建一个临时文件(使用FILE_FLAG_DELETE_ON_CLOSE)。 我按顺序填充它,并且我不想担心在这一部分中进行无缓冲的IO。 然后,在进程运行时,我想使用无缓冲的IO访问该文件,因为我有自己的缓存逻辑。 因此,我正在考虑再次使用FILE_FLAG_NO_BUFFERING打开同一文件,然后关闭旧句柄。 我想以重叠的方式进行此操作有两个原因:
只要记住要在共享模式下包含FILE_SHARE_DELETE。 我认为FILE_FLAG_DELETE_ON_CLOSE是唯一影响不仅是“您的”句柄的标志。
是不是很荒谬?
您想打开两次,因为如果在关闭上一个句柄之后打开,则可能会弄乱您的文件。 但是现实是您正试图弄乱您的文件。
如果不能保证专有文件访问,如何防止某人做某事? 但是,如果您仅打开文件,如何重新打开文件?
AFAIK,如果仅已打开文件,则不允许再打开,即使来自同一进程也是如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.