Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:docs:fapi:doschgfileptr [2018/08/26 13:41] – prokushev | en:docs:fapi:doschgfileptr [2021/09/17 04:31] (current) – prokushev | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{logos:os2.gif? | + | {{page>en:templates:fapiint}} |
====== DosChgFilePtr ====== | ====== DosChgFilePtr ====== | ||
This call moves the read/write pointer in accordance with the type of move specified. | This call moves the read/write pointer in accordance with the type of move specified. | ||
- | ==Syntax== | + | ===== Syntax ===== |
- | | + | |
- | ==Parameters== | + | <code c> |
- | ;FileHandle | + | DosChgFilePtr (FileHandle, Distance, MoveType, NewPointer) |
- | ; Distance | + | </code> |
- | ; MoveType | + | |
- | ''' | + | |
- | | + | |
- | | + | |
- | | + | |
- | ; NewPointer (PULONG) - output : Address of the new pointer location. | + | |
- | ==Return Code== | + | ===== Parameters ===== |
- | rc (USHORT) - return | + | |
+ | |||
+ | * FileHandle ([[HFILE]]) - input : Handle returned by a previous [[DosOpen]] call. | ||
+ | * Distance ([[LONG]]) - input : The offset to move, in bytes. | ||
+ | * MoveType ([[USHORT]]) - input : Method of moving. Specifies a location in the file from where Distance to move the read/write pointer starts. Values and their meanings are: | ||
+ | |||
+ | ^ Value ^ Definition ^ | ||
+ | | 0 | Beginning of the file. | | ||
+ | | 1 | Current location of the read/write pointer. | | ||
+ | | 2 | End of the file. Use this method to determine a file's size. | | ||
+ | |||
+ | * NewPointer ([[PULONG]]) - output : Address of the new pointer location. | ||
+ | |||
+ | ===== Return Code ===== | ||
+ | |||
+ | rc ([[USHORT]]) - return | ||
+ | | ||
Return code descriptions are: | Return code descriptions are: | ||
- | * 0 NO_ERROR | ||
- | * 1 ERROR_INVALID_FUNCTION | ||
- | * 6 ERROR_INVALID_HANDLE | ||
- | ==Remarks== | + | * 0 NO_ERROR |
+ | * 1 ERROR_INVALID_FUNCTION | ||
+ | * 6 ERROR_INVALID_HANDLE | ||
+ | |||
+ | ===== Remarks ===== | ||
The read/write pointer in a file is a signed 32-bit number. A negative value moves the pointer backward in the file. A positive value moves the pointer forward. DosChgFilePtr cannot be used to seek to a negative position in the file. | The read/write pointer in a file is a signed 32-bit number. A negative value moves the pointer backward in the file. A positive value moves the pointer forward. DosChgFilePtr cannot be used to seek to a negative position in the file. | ||
This call may not be used for a character device or pipe. | This call may not be used for a character device or pipe. | ||
- | ==Example Code== | + | ===== Example Code ===== |
- | ===C Binding=== | + | |
- | <PRE> | + | ==== C Binding ==== |
+ | |||
+ | <code c> | ||
#define INCL_DOSFILEMGR | #define INCL_DOSFILEMGR | ||
Line 42: | Line 55: | ||
USHORT | USHORT | ||
- | </PRE> | + | </code> |
This example opens file test.dat, writes some data, and resets the file pointer to the beginning of the file. | This example opens file test.dat, writes some data, and resets the file pointer to the beginning of the file. | ||
- | <PRE> | + | <code c> |
#define INCL_DOSFILEMGR | #define INCL_DOSFILEMGR | ||
Line 63: | Line 76: | ||
#define FILE_ATTRIBUTE FILE_ARCHIVE | #define FILE_ATTRIBUTE FILE_ARCHIVE | ||
#define RESERVED 0L | #define RESERVED 0L | ||
+ | |||
HFILE | HFILE | ||
USHORT | USHORT | ||
Line 71: | Line 84: | ||
USHORT | USHORT | ||
- | Action = 2; | + | Action = 2; |
- | | + | strcpy(FileData, |
- | | + | if(!DosOpen(FILE_NAME, |
- | & | + | & |
- | & | + | & |
- | FILE_SIZE, | + | FILE_SIZE, |
- | FILE_ATTRIBUTE, | + | FILE_ATTRIBUTE, |
- | FILE_EXISTS | FILE_NOEXISTS, | + | FILE_EXISTS | FILE_NOEXISTS, |
- | DASD_FLAG | INHERIT | /* Open mode of the file */ | + | DASD_FLAG | INHERIT | /* Open mode of the file */ |
- | WRITE_THRU | FAIL_FLAG | | + | WRITE_THRU | FAIL_FLAG | |
- | SHARE_FLAG | ACCESS_FLAG, | + | SHARE_FLAG | ACCESS_FLAG, |
- | RESERVED)) | + | RESERVED)) |
- | if(!DosWrite(FileHandle, | + | if(!DosWrite(FileHandle, |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | MOVE_DIST, | + | MOVE_DIST, |
- | FILE_BEG, | + | FILE_BEG, |
- | & | + | & |
- | </PRE> | + | </code> |
- | ===MASM Binding=== | + | ==== MASM Binding ==== |
- | <PRE> | + | |
+ | <code asm> | ||
EXTRN DosChgFilePtr: | EXTRN DosChgFilePtr: | ||
INCL_DOSFILEMGR | INCL_DOSFILEMGR | ||
+ | | ||
PUSH | PUSH | ||
PUSH | PUSH | ||
Line 103: | Line 117: | ||
PUSH@ DWORD | PUSH@ DWORD | ||
CALL | CALL | ||
+ | </ | ||
Returns WORD | Returns WORD | ||
- | </ | ||
- | == Note === | + | |
+ | ===== Note ===== | ||
Text based on http:// | Text based on http:// |