Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 文件\u标志\u POSIX\u语义不起作用_C++_Winapi_Posix - Fatal编程技术网

C++ 文件\u标志\u POSIX\u语义不起作用

C++ 文件\u标志\u POSIX\u语义不起作用,c++,winapi,posix,C++,Winapi,Posix,我写了一个简单的测试,但它不起作用。在第二种情况下,为什么CreateFilewithFILE\u FLAG\u POSIX\u SEMANTICSFLAG允许我打开NTFS磁盘上名为“stamp.oS”的文件 #include "stdafx.h" #include <windows.h> #include <iostream> int main() { auto h = CreateFileA("c:\\stamp.oS", GENERIC_READ, 0, N

我写了一个简单的测试,但它不起作用。在第二种情况下,为什么
CreateFile
with
FILE\u FLAG\u POSIX\u SEMANTICS
FLAG允许我打开NTFS磁盘上名为“stamp.oS”的文件

#include "stdafx.h"
#include <windows.h>
#include <iostream>

int main()
{
  auto h = CreateFileA("c:\\stamp.oS", GENERIC_READ, 0, NULL, OPEN_EXISTING, 
    FILE_FLAG_POSIX_SEMANTICS, NULL);

  if (h == INVALID_HANDLE_VALUE)
    std::cout << "bad first try" << std::endl;
  else
  {
    std::cout << "yeah first" << std::endl;
    CloseHandle(h);
  }


  h = CreateFileA("c:\\stamp.os", GENERIC_READ, 0, NULL, OPEN_EXISTING,
    FILE_FLAG_POSIX_SEMANTICS, NULL);

  if (h == INVALID_HANDLE_VALUE)
    std::cout << "bad second try" << std::endl;
  else
  {
    std::cout << "yeah second" << std::endl;
    CloseHandle(h);
  }

  system("pause");
    return 0;
}

因为处理此请求的文件系统会忽略对象属性中的
OBJ\u CASE\u INSENSITIVE
标志。更好的问题-为什么要使用
CreateFileA
而不是
CreateFileW
不区分对象的注册表项很重要。
yeah first
yeah second