fopen 与 fopen_s
来源:互联网 发布:淘宝客服搞笑语录 编辑:程序博客网 时间:2024/05/17 23:58
FILE * fopen(const char *file, const char *mode) { return( _fsopen(file, mode, _SH_DENYNO) ); //_SH_DENYNO允许共享读写操作} errno_t fopen_s(FILE ** pfile, const char *file, const char *mode) { _VALIDATE_RETURN_ERRCODE((pfile != NULL), EINVAL); *pfile = _fsopen(file, mode, _SH_SECURE); //_SH_SECURE写独占,多进程导致打开文件句柄为空 if(*pfile != NULL) return 0; return errno; } #define _SH_DENYRW 0x10 /* deny read/write mode */ #define _SH_DENYWR 0x20 /* deny write mode */ #define _SH_DENYRD 0x30 /* deny read mode */ #define _SH_DENYNO 0x40 /* deny none mode */ #define _SH_SECURE 0x80 /* secure mode */
上面的fopen 与 fopen_s可以看到,其实这两个函数是有本质区别的,之前将fopen全部替换成fopen_s导致进程立刻崩溃连vs调试器都无法中断下来就是因为没有检查返回句柄是否为空(为什么返回空,在多进程同时操作一个文件的时候会导致另外一个进程无法打开此文件),fprintf 调用后进程立刻退出!
阅读全文
0 0
- fopen与fopen_s
- fopen 与 fopen_s比较
- fopen 与 fopen_s
- fopen与fopen_s的区别
- fopen与fopen_s的比较
- fopen与fopen_s的区别
- VS fopen_s与fopen支持
- fopen与fopen_s区别与联系
- C/C++ 中fopen_s与fopen
- C/C++ 中fopen_s与fopen
- C/C++ 中fopen_s与fopen
- C/C++ 中fopen_s与fopen
- fopen 和 fopen_s
- fopen和fopen_s
- fopen,fopen_s,_wfopen_s与_fsopen, _wfsopen的区分
- warning C4996 C/C++ 中fopen_s与fopen
- 文件操作fopen,fopen_s,_fsopen
- fopen和fopen_s的区别
- 线性代数 -- 列空间、零空间
- Linux 中 Oracle dmp 文件导入命令
- 欢迎使用CSDN-markdown编辑器
- 最大连续子序列
- 表格排序
- fopen 与 fopen_s
- 【TextView】可纵向滚动的文本框
- XMind思维导图合并
- JavaScript的学习(六)--Dom部分的学习
- java基础复习--复习总结12
- etcd raft如何实现Linearizable Read
- 快速排序
- C语言预处理命令之条件编译(#ifdef,#else,#endif,#if等)
- $.ajax()方法详解