汇编语言SetFilePointer函数:移动打开文件的位置指针


函数 SetFilePointer 移动打开文件的位置指针。该函数可以用于向文件添加数据,或是执行随机访问记录处理:

SetFilePointer PROTO,
    hFile:HANDLE,                                          ;文件句柄
    lpDistanceToMove:SDWORD,                  ;指针移动 字节数
    lpDistanceToMoveHigh:PTR SDWORD,   ;指针移动字节数,高双字
    dwMoveMethod:DWORD                        ;起点

若函数调用失败,则返回值为零。dwMoveMode 指定文件指针移动的起点,选择项为 3 个预定义符号:FILE_BEGIN、FILE_CURRENT 和 FILE_END。

移动距离本身为 64 位有符号整数值,分为两个部分:
  • lpDistanceToMove:低 32 位
  • lpDistanceToMoveHigh:含有高 32 位的变量指针

如果 lpDistanceToMoveHigh 为空,则只用 lpDistanceToMove 的值来移动文件指针。例如,下面的代码准备添加到一个文件末尾:

INVOKE SetFilePointer,
    fileHandle,        ;文件句柄
    0,                      ;距离低32位
    0,                      ;距离高32位
    FILE_END          ;移动模式