VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 993|回复: 4

[API档案] SetFilePointer 函数说明

[复制链接]
51_avatar_middle
最佳答案
82 
online_admins 发表于 2019-7-16 23:33:49 | 显示全部楼层 |阅读模式
简介:
使用 SetFilePointer 函数设置文件当前的读写位置。

声明:
  1. DWORD SetFilePointer(
  2.   HANDLE hFile,
  3.   LONG   lDistanceToMove,
  4.   PLONG  lpDistanceToMoveHigh,
  5.   DWORD  dwMoveMethod
  6. );
复制代码


参数:
hFile:已打开的文件句柄,必须拥有 GENERIC_READ 或者 GENERIC_WRITE 访问权限;
lDistanceToMove:低32位的有符号的(有负有正)的值,指定要移动文件指针的字节数。如果lpDistanceToMoveHigh不为NULL,则lpDistanceToMoveHigh和lDistanceToMove将形成一个指定要移动的距离的单个64位有符号值。 如果lpDistanceToMoveHigh为NULL,则lDistanceToMove是一个32位有符号值。 lDistanceToMove的正值在文件中向前移动文件指针,负值则向后移动文件指针。
lpDistanceToMoveHigh:指向要移动的有符号64位距离的高32位。 如果你不需要高位的32位,这个指针必须设置为NULL。 当非NULL时,该参数还接收文件指针新值的高位DWORD。
dwMoveMethod:设置文件指针的移动起点的位置:FILE_BEGIN=>从文件头开始往后移动,FILE_CURRENT=>从文件的当前指针位置开始移动,FILE_END=>从文件尾部开始往前移动。

返回值:
如果SetFilePointer函数成功并且lpDistanceToMoveHigh为NULL,则返回值是新文件指针的低位DWORD。 如果lpDistanceToMoveHigh不为NULL,则函数返回新文件指针的低位DWORD,并将新文件指针的高位DWORD放入该参数指向的LONG中。
如果函数失败并且lpDistanceToMoveHigh为NULL,则返回值为INVALID_SET_FILE_POINTER。 要获得扩展的错误信息,请调用GetLastError。
如果函数失败,并且lpDistanceToMoveHigh非空,则返回值为INVALID_SET_FILE_POINTER。 但是,由于INVALID_SET_FILE_POINTER是新文件指针的低位DWORD的有效值,因此必须检查GetLastError以确定是否发生错误。 如果发生错误,GetLastError返回非NO_ERROR值。
如果新文件指针的值为负值,则函数失败,文件指针不移动,GetLastError返回的代码为ERROR_NEGATIVE_SEEK。




上一篇:第09课 文件的读写操作 | 课后作业
下一篇:SetFilePointerEx 函数说明
51_avatar_middle
最佳答案
2 
在线会员 发表于 2020-5-4 17:17:26 | 显示全部楼层
祝VC驿站越办越好!
81_avatar_middle
最佳答案
0 
在线会员 发表于 2020-8-1 12:08:05 | 显示全部楼层
感谢博主,提供这么多的学习资料
41_avatar_middle
最佳答案
0 
在线会员 发表于 2020-8-17 11:36:32 | 显示全部楼层
学习了,感谢分享
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-1 09:08

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表