注意不要使用 GENERIC_ALL 代替 GENERIC_READ | GENERIC_WRITE
来源:互联网 发布:ai软件下载最新版 编辑:程序博客网 时间:2024/05/29 14:01
看到核心编程第10章,想用上面的代码进行CreateFile文件独占测试,结果总是输出
File1 not created
将上面的代码CreateFile的标志GENERIC_ALL改成GENERIC_READ | GENERIC_WRITE,运行输出
File1 created OK
File2 not created
原来 GENERIC_ALL 标志与 GENERIC_READ | GENERIC_WRITE是不是同的意思
附上代码#include <stdio.h>#include <tchar.h>#include <windows.h>int _tmain(int argc, _TCHAR* argv[]){HANDLE hFile1 = CreateFile(_T("D:\\1.txt"),GENERIC_READ|GENERIC_WRITE, //注意不要使用 GENERIC_ALL 代替 GENERIC_READ | GENERIC_WRITE0,NULL,OPEN_EXISTING,NULL,NULL);if (hFile1 == INVALID_HANDLE_VALUE){wprintf(_T("File1 not created\n"));CloseHandle(hFile1);return -1;}else{wprintf(_T("File1 created OK\n"));}HANDLE hFile2 = CreateFile(_T("D:\\1.txt"),GENERIC_READ |GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);if (hFile2 == INVALID_HANDLE_VALUE){wprintf(_T("File2 not created\n"));CloseHandle(hFile1);CloseHandle(hFile2);return -1;}else{wprintf(_T("File created OK\n"));}CloseHandle(hFile1);CloseHandle(hFile2);getchar();return 0;}
0 0
- 注意不要使用 GENERIC_ALL 代替 GENERIC_READ | GENERIC_WRITE
- BASE64要注意不要使用JDK的
- Java使用Apache POI导出-注意前端不要使用Ajax异步请求
- VC学习和使用需要注意的几点,千万不要忽略(转)
- 开发日志:struts2开发注意Action方法不要使用get/set开头
- 使用HashMap需要注意的事儿:不要暴露Map.entry给外部不可信代码Map.entrySet()
- jquery使用each时注意不要把注释写在函数体内
- 引用、指针的使用对比(注意* &符号不要用乱了)
- SDUSTOJ Problem G: 整数的封装(该题目要注意尽量不要使用pow函数)
- spring中写字符串模板的时候注意不要使用#和$
- SQL语句 使用...代替
- 使用MPOJO代替POJO
- 使用sudo代替su
- 使用parentNode 代替 parentElement
- 使用LM2575代替7805
- 使用subprocess代替popen
- button代替spinner使用
- 使用SparseArray代替HashMap
- ASP MVC最近遇到的两个问题(SQL和HTTPWebRequest)
- 解决SSh中公共Dao使用泛型且Dao层无其他Dao,Service直接继承公共Dao,部署到tomcat可能会出现的错误。
- window下lapack库和blas库的编译
- 2014/7/1学习计划与总结
- 想知道一个前辈或高手的sql水平
- 注意不要使用 GENERIC_ALL 代替 GENERIC_READ | GENERIC_WRITE
- 线程可提醒状态是什么?
- 我总结的c#学习路线
- 胖老婆担心老公减肥效果好 想心思将其喂饱增肥
- 2014年8月21日,标记以后正式开始努力windows系统编程
- 为什么软件卖得很贵
- 第九章 9.2.1节练习
- ibatis缓存配置
- 胖老婆担心老公减肥效果好 想心思将其喂饱增肥