移动开发 架构设计 编程语言 互联网 开发经验 Web前端
开发杂谈 系统运维 研发管理 数据库 云 计 算 Java开发
首页 开发总结 移动开发 编程语言 开发经验 Java开发
 当前位置:首页 > CreateFile和ANSI C函数中fopen的比较 CreateFile和ANSI C函数中fopen的比较 > 正文显示
 最新推荐文章
互斥与临界区的比较 完成端口测试服务器功能的客户端 完成端口服务器源码 POW工作量证明原理
科大迅飞合成发音人列表 CreateFile和ANSI 获取扩展sd卡跟路径 android基础总结 内部存储
Android 获取系统各个目录 Android遍历手机内所有文件 Android权限管理之Perm Android教程 使用Ecli
Android SDK版本和AD 搭建最新版本的Android开发 SetThreadAffinit 直接显示图片
CreateFile和ANSI C函数中fopen的比较 CreateFile和ANSI C函数中fopen的比较   (80)

fopen()和createfile()的不同
  问题: 用fopen()函数生成一个文件和用CreateFile()函数生成一个文件,这两个文件有什么不同?c/c++中的标准库函数如fread() fwrite() fseek() fslose()能否可用?是否有功能类似API的函数也可用?

  答案: 使用API和标准库函数都可以生成文本文件和二进制文件,在这点上没有区别。同fread()对应的是ReadFile,同fwrite()对应的是WriteFile,同fseek()对应的是SetFilePointer,同fclose对应的是CloseHandle。两套函数都可以使用,你熟悉哪个用哪个。不过API函数可以读写Windows的设备文件,功能更多一些。

  另: CreateFile()是比fopen()更加底层的API.

===================================================

操作 fopen CreateFile
打开读 fopen("a.txt","r") CreateFile("a.txt",GENERIC_READ,0,NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)
打开写并创建 fopen("a.txt","w") CreateFile("a.txt",GENERIC_WRITE,0,NULL,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL)
打开读写 fopen("a.txt","r+") CreateFile("a.txt",GENERIC_WRITE|GENERIC_READ,0,NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)
打开读写并创建 fopen("a.txt","w+") CreateFile("a.txt",GENERIC_WRITE|GENERIC_READ,0,NULL,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL)


如果文件打开成功则返回文件句柄,否则返回INVALID_HANDLE_VALUE。通过GetLastError来获取错误信息。

文件的关闭很简单,只需要用CloseHandle就可以关闭文件,当文件被关闭时所有缓存内数据都会被写入到磁盘。

文件的删除可以使用下面的函数,并指明文件名

BOOL DeleteFile(
LPCTSTR lpFileName // file name
);
对于目录的创建可以使用:

BOOL CreateDirectory(
LPCTSTR lpPathName, // directory name
LPSECURITY_ATTRIBUTES lpSecurityAttributes // 安全描述 通常情况下设置为NULL
);
BOOL CreateDirectoryEx(
LPCTSTR lpTemplateDirectory, // template directory
LPCTSTR lpNewDirectory, // directory name
LPSECURITY_ATTRIBUTES lpSecurityAttributes // SD
);
后一个函数可以创建一个和现有目录具有相同属性的新目录。

如果要删除一个存在的目录可以使用

BOOL RemoveDirectory(
LPCTSTR lpPathName // directory name
);
上面这些函数的返回值都是BOOL类型,可以通过返回值判断是否执行成功。如果失败可以通过GetLastError得到错误信息。

CreateFile可以通过参数来制定,读写是否线程安全,fopen则不可以


 最热文章
http://www.3 获取扩展sd卡跟路径 Android遍历手机内 android基础总结
Android 获取系统 搭建最新版本的Andro 科大迅飞合成发音人列表 Android SDK版
直接显示图片 Android教程 使用 Android权限管理之 SetThreadAff
实时视频传输的关键技术 Zlib库对网页中def VC++内存泄漏的检测与 C++中的STL中map
在Visual C++中 vc, c++ stl C++中的STL中map VC 获取 程序窗口大小
移动开发 架构设计 编程语言 互联网 开发经验 Web前端
开发杂谈 系统运维 研发管理 数据库 云 计 算 Java开发
 网站联系 QQ: 121756557 E-Mail: 121756557@qq.com ©2018