对于这个问题中缺少代码片段及其模糊性,我请求您耐心等待,但我完全一无所知,我对错误的位置没有任何线索,我无法粘贴整个应用程序。
C
我有一个跨平台应用程序,它通过普通API(等)打开文件fopen
,写入一些数据(首先将缓冲区传递给 zlib 以使其放气,但我认为这不相关)持续时间,最后冲洗并关闭它。
这在所有平台上都可以正常工作,除了打开 UAC 的 Windows OS x64 上的 64 位构建。基本上,在那个精确的设置中,文件缓冲区似乎与我在stdout
打开文件和刷新文件之间发送的内容交错,就好像任何写入stdout
使用另一个文件的相同缓冲区一样。
重要的是要注意,这不应该与任何文件系统虚拟化(VirtualStore
机制)相关,正如我在%USERPROFILE%\Saved Games\
. 这个问题肯定与 UAC 有关,因为如果我关闭它,问题就不会发生。中也没有问题wine64
。
任何指针都是有价值的。编译器是 g++ 4.7.0(从 linux 交叉编译)。