我可以使用不同的标志(在这种情况下,一个使用FILE_FLAG_NO_BUFFERING,一个使用不同的标志)打开同一个文件两次(使用CreateFileA)?用不同的标志打开两次相同的文件?
详细情况如下:在启动过程中,我创建了一个临时文件(使用FILE_FLAG_DELETE_ON_CLOSE)。我按顺序填充它,并且我不想担心在这部分中执行无缓冲IO。然后,在进程运行时,我想使用无缓冲IO访问该文件,因为我有自己的缓存逻辑。因此,我正在考虑再次打开相同的文件,这次是使用FILE_FLAG_NO_BUFFERING,然后关闭旧的句柄。我想以这种重叠的方式做到这一点有两个原因:
- 并发性。如果我在打开新手柄之前关闭旧手柄,则其他人可能会在此期间篡改我的文件。
- FILE_FLAG_DELETE_ON_CLOSE会在我关闭第一个手柄而没有打开另一个手柄时删除我的文件。这是我可以解决的一个小麻烦。
随机问题:为什么你想使用`CreateFileA`而不是`CreateFileW`? – Joey 2011-01-13 22:32:05
我没有自己写整个系统,只有这个部分。他们给我的文件名为char *,所以我把它用作char * :-)另外,我可以写一个关于WCHAR为什么很愚蠢的说法,除了当然,它的用途在Windows API中非常丰富你必须使用它。 – 2011-01-13 22:34:24