zoukankan      html  css  js  c++  java
  • 关于共享打开文件

      今天到朋友的项目帮忙,他们的程序需要打开一个表格文件,我老是打开失败,后来他们告诉我,我的表格打开着的,所以open file就失败了,我x,难道就不能做成共享打开么?

      fopen_s函数不能共享打开文件的,要使用_fsopen。。。

      自己写了个测试例子测试了下:

      

    FILE* pf = NULL;
    errno_t eRet = fopen_s(&pf, "c:/test.dat", "r+");
    if (eRet)
    {
        printf("fail to open file: test.dat\n");
    }
    else
    {
        printf("open file success: test.dat\n");
    }

      在开着测试程序的情况下,再次打开第二个测试程序时,就报fail了。

      然后我又写了段测试代码:

      

    FILE* pf = NULL;
    pf = _fsopen("c:/test.dat", "r+", _SH_DENYNO);
    if (!pf)
    {
        printf("fail to open file: test.dat\n");
    }
    else
    {
        printf("open file success: test.dat\n");
    }

      这次没问题了,每个进程都能打开那个文件。

      简单说下_fsopen的第三个参数吧:

      _SH_DENYRW 拒绝读写

      _SH_DENYWR 拒写

      _SH_DENYRD 拒读

      _SH_DENYNO 可读写

      _SH_SECURE 安全保护模式

      

  • 相关阅读:
    获取APK的包名,和启动窗口类
    AS 中手动实现无线真机调试
    debian9安装jdk1.8
    java内存检测
    debian9设置pptp
    apache2 支持https
    centos安装python3
    debian laravel访问Mysql
    debian9下为apache启用rewrite模块,修改默认路径
    Java学习笔记(一)背景知识
  • 原文地址:https://www.cnblogs.com/yuohoo/p/2983843.html
Copyright © 2011-2022 走看看