fopen(, "rb")能打开的文件,CreateFile(, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, 0)却打不开?
对一个被其他进程在写的文件(独占与否不知道)难道是我CreateFile的参数使用的不对?
请问该怎么使用CreateFile共享读打开呢?

解决方案 »

  1.   

    应该是参数的问题。fopen最后还得调用CreateFile这个api
      

  2.   

    CreateFile是底层的,比fopen强大,你的参数不对,可能机制有问题。对方要是独占的话,你怎么都没办法打开了
      

  3.   

    是啊,所以,我也很奇怪fopen能打开,CreateFile却打不开
    CreateFile的参数已经是共享读的了呀
      

  4.   

    CreateFile的参数设成是共享读是它自己打开,而给别人共享读的权限,否则就是自己独占了。
      

  5.   

    fopen是unix时代的产物,功能最弱,甚至不如POSIX的_open
    CreateFile是Windows API,在windwos平台上自然功能最强大