`
swimmer2000
  • 浏览: 37996 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

几种文件操作函数库的特点

阅读更多

在我们想进行文件操作时,有时往往不知道该从何下手,因为有太多选择了。

首先,我们可以采用喜之郎CC的C语言函数库里(C Run-Time Library)提供的函数,来打开文件:

FILE *fopen(
const char *filename,
const char *mode
);

关于fopen函数的具体的解释敬请到MSDN上查找,除此之外,Windows还提供了另外的选择,我们可以使用Win32 API函数进行同样的操作。脾气暴躁的同学可能就会问了,微软为什么要这么干呢?是不是吃饱了撑了。这个问题还真不好回答,我也不知道微软这么干究竟是为了什么,但是看到下面API函数CreateFile的声明,同学们马上就能想到:多参数函数虽然给使用者带来了不少麻烦,但这同时也是功能强大的标志。使用Windows提供的API,我们可以更详细指定文件的共享模式和安全属性等选项,但较C的库函数,有一个致命的缺点,乃是不易移植到其它操作系统。CreateFile的函数原型:

HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);

上面说到Win32 API参数多,往往难于使用,针对这种情况,盖茨和他的Microsoft怎能坐视不管?MFC就是为了降低使用者门槛而推出,以MFC中封装了文件操作的CFile类为例。CFile成员函数的接口较之raw API是非常的清爽,内底里,CFile最终也还是调用Win32 API函数,MFC只不过是裹了蜜糖的Win32 API(当然,提供的应用程序框架也很强大)。空口无凭,以代码为证:

// In FILECORE.CPP
BOOL CFile::Open(LPCTSTR lpszFileName, UINT nOpenFlags,
CFileException* pException)
{
// ASSERT this ASSERT that
// Set parameter
// ......
// attempt file creation
HANDLE hFile = ::CreateFile(lpszFileName, dwAccess, dwShareMode, &sa,
dwCreateFlag, FILE_ATTRIBUTE_NORMAL, NULL);
// .......

return TRUE;
}

回到文章开头的问题,我们该选择函数库呢?如果你要跨平台,我觉得你最好选择使用CRT里的函数;如果是在Windows上跑的程序非C++程序,老实的选择Win32 API吧;而如果你的C++程序已经和MFC产生了纠葛(由MFC APPWizard产生),那文件操作时使用MFC中的类则是顺理成章的事情。

分享到:
评论

相关推荐

    stm32单片机函数库

    在STM32F10x_LIb这个压缩包中,我们很可能会找到与STM32F10x系列微控制器相关的函数库文件。 STM32F10x系列是意法半导体(STMicroelectronics)推出的一款高性能、低成本的32位微控制器,广泛应用于嵌入式系统设计...

    STM32F10XXX固件函数库中文手册.PDF

    固件函数库的结构清晰,主要分为以下几个部分: 1. **定义、文档约定和规则**:包括命名规则、编码规则等,确保代码的一致性和可维护性。 2. **固件函数库概述**:涵盖了库的内容、架构以及安装指南等内容。 3. **...

    周立功USBCAN函数库ControlCAN.dll最新版

    使用周立功USBCAN函数库ControlCAN.dll开发应用程序时,开发者需要注意以下几点: - **系统需求**:确保系统兼容性,尤其是对于旧版系统升级至Windows 10的情况。 - **设备兼容性**:确认所使用的USB-CAN转换器与...

    STM8kuhanshu.exe.zip_STM8函数库

    STM8kuhanshu.exe.zip 文件是一个包含了STM8函数库中文参考工具的压缩包,它主要是为了帮助开发者更轻松地理解和使用STM8微控制器的函数库。STM8是一款由意法半导体(STMicroelectronics)推出的8位微控制器,广泛...

    windows下几种文件拷贝方式比较代码

    以下是对标题“windows下几种文件拷贝方式比较代码”所涉及的知识点的详细解释。 1. **Shell API**: Windows提供了一套名为Shell API的库函数,它允许应用程序与Windows Shell交互,包括文件和文件夹的操作。其中...

    SIEMENS S7200 库文件

    在S7-200的库文件中,常见的有以下几种类型: 1. **标准库**:包含基本的算术运算、比较和逻辑操作等功能块,是所有项目的基础。 2. **通信库**:提供与其它设备(如HMI、其他PLC、PC等)进行数据交换的函数,如PPI...

    S7-200SMART多项式滤波库(使用说明+库文件).zip

    库文件中的各项功能通常包括但不限于以下几点: 1. 初始化:设置滤波器参数,如滤波器阶数、采样周期等,初始化滤波器状态。 2. 输入处理:将采集到的原始数据输入滤波器,进行滤波操作。 3. 输出计算:根据多项式...

    简单易用mysql库操作库

    【描述】这款操作库是作者投入几个晚上的辛勤工作成果,其主要特点在于封装了复杂的MySQL操作,使得代码更易于理解和使用。库内集成了zthread,这意味着它具有初步的多线程支持,尽管当前这一功能并未完全开放,但...

    文件系统\注册表HIVE 解析库文件

    在Windows操作系统中,有几种常见的文件系统类型,包括NTFS、FAT(FAT16、FAT32)以及后来引入的EXFAT。这些文件系统各有特点,适用于不同的场景。 1. NTFS (New Technology File System): - NTFS是Windows NT及...

    操作系统界面功能支持库3.0版(shell.fne)-易语言win支持库

    操作系统界面功能支持库3.0版(Shell.FNE)是为易语言开发的一款专门用于增强Windows操作系统用户界面功能的库文件。它集成了多种Windows API调用,使得开发者能够更轻松地实现各种用户界面交互,提高了开发效率和...

    CSV文件操作

    总的来说,CSV文件操作是IT工作中的一项基础技能,涵盖从数据读取、解析、清洗、转换,到数据导入导出和错误处理等多个环节。掌握这些知识点对于任何涉及数据处理的开发者来说都至关重要。在实际应用中,我们需要...

    STC8单片机库函数代码

    4. **GPIO操作函数**:如`GPIO_SetValue()`和`GPIO_ReadInput()`,用于设置和读取引脚状态,实现与外部设备的交互。 5. **中断服务函数**:如`INTERRUPT_Init()`,用于设置中断源、优先级和中断处理程序。中断是...

    vc小助手,包含大量函数

    在VC的函数库中,有无数个预定义的函数,这些函数涵盖了输入输出、内存管理、字符串操作、数学运算、文件操作等多个方面。例如,`printf`和`scanf`是C语言中的标准输入输出函数,在VC中同样适用,用于格式化打印和...

    S7 200smart库指令 主要包括库文件等内容,可供编程参考

    S7 200 SMART是西门子推出的一款经济型小型PLC(可编程逻辑控制器),它具有紧凑、高效的特点,适用于多种自动化应用场景。在工业自动化领域,掌握S7 200 SMART的编程技巧至关重要,尤其是对于使用库指令进行高效...

    配置文件操作模块.zip易语言程序源码资源下载

    在这个“配置文件操作模块.zip”压缩包中,包含的是易语言程序的源码资源,专注于配置文件的操作。配置文件在软件开发中起着至关重要的作用,它们用于存储应用的设置、参数或状态信息,方便程序在运行时读取和写入。...

    文件加密算法(aes,md5,hash,rsa)

    在标题和描述中提到了几种常见的加密算法:AES、MD5、HASH和RSA。这些算法在不同的场景下有着各自的应用和特点。 首先,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,产生一个128位(16字节)的...

    PIC32MM系列单片机DXP库文件,开发板资料后续上传-PIC32库文件.zip

    《PIC32MM系列单片机与DXP库文件详解》 在电子设计领域,PIC32MM系列单片机以其高性能、低功耗的特点,广泛应用于各种嵌入式系统中。本文将深入探讨该系列单片机的核心特性以及与之相关的DXP库文件,帮助开发者更好...

    易语言斩月核心函数库功能模块源码-易语言

    后者"斩月_核心函数库12.18.ec"则很可能是一个更新至12.18版本的核心函数库文件,其中包含了一系列经过优化和更新的函数,涵盖了字符串处理、数学计算、文件操作、网络通信等多个方面的功能。 在易语言中,模块控件...

    stm32SPI SD.rar_FAT32操作_SPI SD文件_sd卡读写_stm32f103 sd card _项目

    - 文件操作:打开、读写、关闭文件的函数实现。 - 错误处理:异常情况下的错误检测和报告。 7. **应用实例**:这样的项目可能应用于数据记录、监控系统、嵌入式系统升级等场景,通过SD卡存储大量数据,方便后期...

    如何检测指定目录下的指定文件是否存在

    本文将详细介绍几种常见的方法来实现这一功能,包括使用`Dir`函数、`FileExists`方法以及`FileLen`函数。 #### 使用`Dir`函数检测文件是否存在 `Dir`函数可以用来读取指定路径下的文件名。当指定的文件存在时,该...

Global site tag (gtag.js) - Google Analytics