Function 42h (66) Move File Pointer (LSEEK)
Move the file-pointer the specified number of bytes from the
beginning, end, or current location, as determined by the mode code in
AL.
On entry: AH 42h
BX File handle
CX:DX Offset, in bytes (signed 32-bit integer)
AL Mode code (see below)
Mode Code: AL Action
0 Move pointer CX:DX bytes from beginning of
file
1 Move pointer CX:DX bytes from current
location
2 Move pointer CX:DX bytes from end of file
Returns: DX:AX New pointer location (signed 32-bit integer),
or AX Error code, if CF is set
Error codes: 1 Invalid mode code
6 Invalid handle
Call Function 59h for extended error code information
(DOS 3.0 and above).
--------------------------------------------------------------------------
This function changes the logical read/write position in the specified
file, by incrementing or decrementing the value assigned to the file
pointer. The offset to add to the file pointer is given as a signed
32-bit integer in the CX:DX register pair--the more significant
portion of the offset in CX. A mode code, specified in AL, indicates
whether the offset specified in CX:DX is referenced to the beginning
of the file (mode 0), the pointer's current location (mode 1), or the
end of the file (mode 2).
Notes: No matter what mode is specified in AL, a positive
offset value in CX:DX always increases the value of
the file pointer. Note that using mode 2 with a
positive value in CX:DX will therefore move the file
pointer beyond the end of the file.
Use a mode code of 2 with an offset of 0 to move the
file pointer to the end of the file, or to find the
length of the file.
It is possible to move the pointer to a location
before the beginning of the file or after the end of
the file. Moving the pointer to a position before
the start of the file will not generate an error,
but the next read or write operation will fail.
A file can be extended by moving the file pointer
past the end of the file and writing one or more
bytes of data.
A file can be truncated my moving the file pointer
to the new end of file and writing zero bytes using
function 40h.
Seealso:
This page last updated on Fri Nov 30 10:49:50 MSK 2001
Copyright © 1992-2001, Vitaly Filatov, Moscow, Russia
Webmaster