当前位置: 首页 > article >正文

几个文件指针操作的函数

NO1、CreateFile    //打开或创建文件或者I/O设备,并返回可访问的句柄

HANDLE WINAPI CreateFile(HANDLE CreateFile(LPCTSTR lpFileName, //普通文件名或者设备文件名DWORD dwDesiredAccess, //访问模式(写GENERIC_READ /读GENERIC_WRITE)DWORD dwShareMode, //共享模式LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全属性的指针DWORD dwCreationDisposition, //如何创建DWORD dwFlagsAndAttributes, //文件属性HANDLE hTemplateFile //用于复制文件句柄
);参数说明:太多了,复制粘贴都不想 可以去网上查一下。
返回值:失败返回INVALID_HANDLE_VALUE,成功返回一个内核对象句柄

NO2、SetFilePointer    //移动一个打开文件的指针

DWORD SetFilePointer(HANDLE hFile, // 文件句柄LONG lDistanceToMove, // 偏移量(低位)PLONG lpDistanceToMoveHigh, // 偏移量(高位)DWORD dwMoveMethod // 基准位置FILE_BEGIN:文件开始位置 FILE_CURRENT:文件当前位置 FILE_END:                //文件结束位置说明:移动一个打开文件的指针
返回值:返回一个新位置,从文件起始处开始算起的一个字节偏移量。

NO3、SetEndOfFile    //将当前文件指针位置设置为文件尾

BOOL WINAPI SetEndOfFile(HANDLE hFile);说明:将当前位置设置为文件尾
返回值:非零表示成功,0表示失败。

NO4、DuplicateHandle    //拷贝另一个文件句柄的收获可以用到

BOOL WINAPI DuplicateHandle(__in HANDLE hSourceProcessHandle,__in HANDLE hSourceHandle,__in HANDLE hTargetProcessHandle,__out LPHANDLE lpTargetHandle,__in DWORD dwDesiredAccess,__in BOOL bInheritHandle,__in DWORD dwOptions
);参数 类型及说明
hSourceProcessHandle:源进程内核句柄(即负责传递内核对象句柄的进程句柄,可以利用    GetCurrentProcess获得当前进程的伪句柄)
hSourceHandle:要传递的内核对象句柄
hTargetProcessHandle:目标进程内核句柄
lpTargetHandle:接收内核对象句柄的地址(先随便声明一个HANDLE)
dwDesiredAccess:TargetHandle句柄使用何种访问掩码(这个掩码是在句柄表中的一项)
bInheritHandle:是否拥有继承
dwOptions:当设DUPLICATE_SAME_ACCESS时,表示于源的内核对象所有标志一样,此时wDesiredAccess可标志为0返回值:非零成功,0表示失败

NO5、FlushFileBuffers    //刷新内部文件缓冲区

BOOL WINAPI FlushFileBuffers(__in     HANDLE hFile;    //文件句柄
)说明:刷新文件缓冲区
返回值:非零成功,0失败

NO6、GetFileSize    //获取文件长度

DWORD WINAPI GetFileSize(__in  HANDLE hFile,__out LPDWORD lpFileSizeHigh
);参数说明:
hFile:文件的句柄。
lpFileSizeHigh:指定一个长整数,用于装载一个64位文件长度的头32位。如这个长度没有超过2^32个字节,则该参数可以设为NULL(变成ByVal)。返回值:如果函数调用成功,则返回值为文件大小的低位双字,lpFileSizeHigh返回文件大小的高阶双字。如果函数返回值为INVALID_FILE_SIZE,并且GetLastError函数返回值非NO_ERROR,则函数调用失败。功能:获得文件大小
示例代码:
DWORD fileSizeHigh;
DWORD fileSizeLow = GetFileSize(hFile,&fileSizeHigh);
UNIT64 fileSize = (((UINT64)fileSizeHiegh) << 32 ) | fileSizeLow;

NO7、GetFileType    //获得文件类型

DWORD WINAPI GetFileType(__in     HANDLE hFile;    //文件句柄
)说明:判断文件类型
返回值:下述常数之一:FILE_TYPE_UNKNOWN 文件类型未知FILE_TYPE_DISK 属于磁盘文件FILE_TYPE_CHAR 文件是一个控制台或打印机FILE_TYPE_PIPE 文件是个管道

NO8、LockFile和UnLockFile    //锁定,解锁文件区域,防止访问冲突

BOLL WINAPI LockFile(
__in hFile,    //欲锁定文件的句柄
__in dwFileOffsetLow,    //指定欲锁定区域起始处的低32位地址
__in dwFileOffsetHigh,    //指定欲锁定区域起始处的高32位地址
__in nNumberOfBytesToLockLow,    //锁定区域包含字符数量的低32位值
__in nNumberOfBytesToLockHigh,    //锁定区域包含字符数量的高32位值
)BOLL WINAPI UnLockFile(
__in hFile,    //欲解锁文件的句柄
__in dwFileOffsetLow,    //指定欲解锁区域起始处的低32位地址
__in dwFileOffsetHigh,    //指定欲解锁区域起始处的高32位地址
__in nNumberOfBytesToUnLockLow,    //锁定区域包含字符数量的低32位值
__in nNumberOfBytesToUnLockHigh,    //锁定区域包含字符数量的高32位值
)说明:如果文件是以共享模式打开,多个进程都可以访问该文件,会出现访问冲突,利用LockFile和UNLockFile可以解决。
返回值:成功返回非零,失败返回0

NO9、CFileException     //这是一个文件相关异常的类

说明:(百度百科复制的)

个CFileException对象代表了与文件相关的异常。CFileException类包括有可移植的原因代码和操作系统指定错误值等公共数据成员。此类也提供产生文件异常的静态成员函数,返回操作系统和C运行中的错误原因代码。

CFileException对象在CFile成员函数中被创建和产生,也可在派生类成员函数中创建或产生。可在CATCH表达式范围内访问这些对象。因为可移植,可以仅用出错代码获取异常的原因。

成员:

m_cause包含异常原因相对应的可移植代码

m_IosError包含相关操作系统错误代码

m_strFileName包含异常的文件名

代码专函:

OsErrorToException返回与操作系统错误值相对应的出错原因代码

ErrnoToException返回与运行错误值相对应的出错原因代码

帮助函数:

ThrowOsError返回一个基于操作系统错误值相对应的出错原因代码

CFileException::ThrowOsError(::GetLastError());  //可以对GetLastError返回的值进行类型转换

ThrowErrno产生一个基于运行错误值的文件异常

http://www.lryc.cn/news/2414328.html

相关文章:

  • 边缘检测:Canny算子
  • 简单html页面代码分享---百度
  • 计算机病毒的基本知识
  • HTML标签及案例超详细笔记
  • Hibernate注解版关联关系映射全解析+案例
  • 什么是SOA?
  • matlab 数理统计,概率论和数理统计(matlab应用)1
  • 如何做好大型OA系统的需求分析?
  • zzuli OJ 2353: 小明学长给学弟的任务
  • ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。 参数名: site
  • Apache Rewrite Rule 重写规则及作用范围
  • 康博(COMPUWARE)软件公司简介
  • webstorm安装、激活、汉化(小白亲测可用)
  • 基本RC积分电路及原理分析
  • 免费获取半年 Bitdefender Total Security 2014
  • chmod 和 chown 命令用法
  • JPA的配置文件persistence.xml怎么配
  • JS获取子节点、父节点和兄弟节点的若干种方式
  • tcp,udp,MTU相关知识
  • quake3编译运行
  • 用follow.it为您的网站添加邮箱订阅功能(附2024版教程)
  • 小白教程!x2m和x3m音频格式转换.mp3格式
  • 用PS把真人照片转素描手绘效果
  • match_parent和fill_parent的区别
  • 启动应用程序出现msctf.dll找不到问题解决
  • Anchorpoints学习笔记:
  • ubuntu9.10源GPG error
  • 常见DDoS攻击之Slowloris
  • 《Linux C编程实战》笔记:信号的屏蔽
  • javaweb学生成绩管理系统java项目