标签:
#include <stdio.h> #include <Windows.h> #define BUF_SIZE 256 int main() { HANDLE hFileRead; DWORD nIn; CHAR buffer[BUF_SIZE]; hFileRead = CreateFile("book.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hFileRead == INVALID_HANDLE_VALUE) { printf("cannot open file.Error:%x\n",GetLastError()); system("pause"); return -1; } while(ReadFile(hFileRead,buffer,BUF_SIZE,&nIn,NULL) && nIn>0) { printf("%s\n",buffer); } CloseHandle(hFileRead); printf("Hello\n"); system("pause"); return 0; }
以上程序读一个文件。
调用函数的例子如下: #001 //创建、写入、读取文件。 #002 //蔡军生 2007/10/21 QQ:9073204 深圳 #003 void CreateFileDemo(void) #004 { #005 // #006 HANDLE hFile = ::CreateFile(_T("CreateFileDemo.txt"), //创建文件的名称。 #007 GENERIC_WRITE|GENERIC_READ, // 写和读文件。 #008 0, // 不共享读写。 #009 NULL, // 缺省安全属性。 #010 CREATE_ALWAYS, // 如果文件存在,也创建。 #011 FILE_ATTRIBUTE_NORMAL, // 一般的文件。 #012 NULL); // 模板文件为空。 #013 #014 if (hFile == INVALID_HANDLE_VALUE) #015 { #016 // #017 OutputDebugString(_T("CreateFile fail!\r\n")); #018 } #019 #020 //往文件里写数据。 #021 const int BUFSIZE = 4096; #022 char chBuffer[BUFSIZE]; #023 memcpy(chBuffer,"Test",4); #024 DWORD dwWritenSize = 0; #025 BOOL bRet = ::WriteFile(hFile,chBuffer,4,&dwWritenSize,NULL); #026 if (bRet) #027 { #028 // #029 OutputDebugString(_T("WriteFile 写文件成功\r\n")); #030 } #031 #032 //先把写文件缓冲区的数据强制写入磁盘。 #033 FlushFileBuffers(hFile); #034 #035 // #036 //从文件里读取数据。 #037 LONG lDistance = 0; #038 DWORD dwPtr = SetFilePointer(hFile, lDistance, NULL, FILE_BEGIN); #039 if (dwPtr == INVALID_SET_FILE_POINTER) #040 { #041 //获取出错码。 #042 DWORD dwError = GetLastError() ; #043 //处理出错。 #044 } #045 #046 DWORD dwReadSize = 0; #047 bRet = ::ReadFile(hFile,chBuffer,4,&dwReadSize,NULL); #048 if (bRet) #049 { #050 // #051 OutputDebugString(_T("ReadFile 读文件成功\r\n")); #052 } #053 else #054 { #055 //获取出错码。 #056 DWORD dwError = GetLastError(); #057 //处理出错。 #058 TCHAR chErrorBuf[1024]; #059 wsprintf(chErrorBuf,_T("GetLastError()=%d\r\n"),dwError); #060 OutputDebugString(chErrorBuf); #061 } #062 #063 }
标签:
原文地址:http://www.cnblogs.com/gongyan/p/4337346.html