文件读写(Windows API)--CreateFile的使用

2018-01-15  本文已影响0人  7bfedbe4863a

这是一个全功能的例程,可打开和创建文件、管道、邮槽、通信服务、设备以及控制台。

函数原型:
HANDLE CreateFile(
  LPCTSTR lpFileName, //指向文件名的指针
  DWORD dwDesiredAccess, //访问模式(写/读)
  DWORD dwShareMode, //共享模式
  LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全属性的指针
  DWORD dwCreationDisposition, //如何创建
  DWORD dwFlagsAndAttributes, //文件属性
  HANDLE hTemplateFile //用于复制文件句柄
  );
示例:
m_hFile = (HANDLE)CreateFile(strFileName, GENERIC_READ,
         FILE_SHARE_READ, NULL, 
         OPEN_EXISTING, NULL, NULL);
返回值:

如执行成功,则返回文件句柄。通过GetLastError可以查看错误,比如INVALID_HANDLE_VALUE、ERROR_ALREADY_EXISTS。

参数分析:
  1. CREATE_NEW 创建文件;如文件存在则会出错 。这种情况下,返回值为INVALID_HANDLE_VALUE,GetLastRrror为80-文件存在。
  2. CREATE_ALWAYS 创建文件,会改写前一个文件。在打开文件的时候,如果文件存在,则会把之前文件中的内容清空;文件不存在则创建新的文件。
  3. OPEN_EXISTING 文件必须已经存在。由设备提出要求 。如果不存在,GetLastError返回2-系统找不到指定的文件。
  4. OPEN_ALWAYS 如文件不存在则创建它
  5. TRUNCATE_EXISTING 讲现有文件缩短为零长度。这个参数在使用时一定要有写的权限,否则会提示参数出错。GetLastError87-参数错误
上一篇 下一篇

猜你喜欢

热点阅读