readfile 返回true,且其读取的大小为0
来源:互联网 发布:数据可视化实战pdf下载 编辑:程序博客网 时间:2024/05/18 01:53
先贴代码
// // 文件映射操作 // printf("Print Any Key To CreateFile\r\n"); getchar(); HANDLE hFile = CreateFile( L"TempFile.txt", GENERIC_ALL, FILE_SHARE_READ, NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile != NULL && hFile != INVALID_HANDLE_VALUE) { printf("CreateFile Success\r\n"); CHAR szWriteBuffer[0x100] = {0}; for(int i =0 ;i < 0x100 - 1;i ++) { szWriteBuffer[i] = i % 10 + 0x6a; } DWORD dwHasWrite; printf("Print Any Key To WriteFile\r\n"); getchar(); if(WriteFile(hFile,szWriteBuffer,0x100,&dwHasWrite,NULL)) { printf("WriteFile Success :%d\r\n",dwHasWrite); FlushFileBuffers(hFile); //CloseHandle(hFile); //Sleep(0x1000); /*hFile = CreateFile( L"TempFile.txt", GENERIC_ALL, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile != NULL && hFile != INVALID_HANDLE_VALUE) { printf("CreateFile Success\r\n"); } else { printf("CreateFile Error :%d\r\n",GetLastError()); getchar(); getchar(); return 0; }*/ char szReadBuffer[0x100] = {0}; DWORD dwHasRead = 0; SetFilePointer(hFile,0,0,FILE_BEGIN); // 移动文件的指针的位置才能正确的读取文件,否则可能失败 while(dwHasRead == 0) { printf("Print Any Key To Read File\r\n"); getchar(); if(ReadFile(hFile,szReadBuffer,0x200,&dwHasRead,NULL)) { printf("ReadFile Success :%d\r\n",dwHasRead); if(dwHasRead == dwHasWrite) { if(memcmp(szWriteBuffer,szReadBuffer,0x100)) { printf("不一样\r\n"); printf("szReadBuffer:%s\r\nszWriteBuffer:%s\r\n",szReadBuffer,szWriteBuffer); } else { printf("一样\r\n"); } } else { printf("读取数据不够???\r\n"); printf("szReadBuffer:%s\r\n",szReadBuffer); } } else { printf("ReadFile Error :%d",GetLastError()); } } } else { printf("WriteFile Error :%d",GetLastError()); } printf("Print Any Key To DeleteFile\r\n"); getchar(); CloseHandle(hFile); DeleteFile(_T("TempFile.txt")); // rename(szWriteBuffer) } else { printf("CreateFile Error :%d",GetLastError()); }
- 问题的关键是,在刚刚进行了WriteFile 之后,文件指针指向文件末尾,导致读取操作失败,重新设置文件指针即可
阅读全文
0 0
- readfile 返回true,且其读取的大小为0
- 同步读串口,ReadFile 返回TRUE,读取的字节数却是0 ----- 解决办法是设置超时值
- ReadFile返回的数据为乱码问题
- EXT的Viewport的layout为border,其west的panel为split:true,但在IE6中并不能改变其大小
- JDBC的autoCommit为true时,其事务管理测试
- CURLINFO_CONTENT_LENGTH_DOWNLOAD 返回大小为 0
- setOnTouchEvent 设置返回值为true 和 false的区别
- setOnTouchEvent 设置返回值为true 和 false的区别
- setOnTouchEvent 设置返回值为true 和 false的区别
- Dialog的isShowing()方法一直返回为true
- Lua自己实现如果对象是指定类或其子类的实例,返回 true
- 函数有返回值且返回值为引用类型的问题返回null
- readFile读取文件
- [C]打印所有不超过256且其平方为回文的数字(及其平方数)
- MySQL数据库中tinyint字段值为1,读取出来为true的问题
- MySQL数据库中字段类型为tinyint,读取出来为true/false的问题
- onTouch返回true的含义
- readfile file_get_contents 无法读取远程图片的原因
- JDBC详解
- @SuppressWarnings注解
- 认识运维工作不能犯的8个错误
- 人脸识别--Open set和Close set的区别
- 5-5 使用函数统计指定数字的个数
- readfile 返回true,且其读取的大小为0
- redmine的安装、配置、使用
- 前端H5初学笔记(三)
- Android--UI
- 一款轻量级的文件选择器,支持多种文件类型
- 搭建Hadoop分布式集群------测试Hadoop分布式集群环境
- 面试OR笔试21——两个链表的第一个公共节点
- TypeScript的书写规范(TSLint)配置修改
- 看ETL工具调度PK有感