Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
en:docs:fapi:doschgfileptr [2018/09/02 14:51] – prokushev | en:docs:fapi:doschgfileptr [2021/08/20 03:22] – prokushev | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{logos:os2.gif? | + | {{page>en:templates:fapiint}} |
====== DosChgFilePtr ====== | ====== DosChgFilePtr ====== | ||
Line 10: | Line 10: | ||
==Parameters== | ==Parameters== | ||
- | * FileHandle (HFILE) - input : Handle returned by a previous DosOpen call. | + | * FileHandle ([[HFILE]]) - input : Handle returned by a previous DosOpen call. |
- | * Distance (LONG) - input : The offset to move, in bytes. | + | * 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: | + | * 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 ^ | + | ^ Value ^ Definition ^ |
- | | 0 | Beginning of the file. | | + | | 0 | Beginning of the file. | |
- | | 1 | Current location of the read/write pointer. | | + | | 1 | Current location of the read/write pointer. | |
- | | 2 | End of the file. Use this method to determine a file's size. | | + | | 2 | End of the file. Use this method to determine a file's size. | |
- | * NewPointer (PULONG) - output : Address of the new pointer location. | + | * NewPointer ([[PULONG]]) - output : Address of the new pointer location. |
==Return Code== | ==Return Code== | ||
- | | + | rc ([[USHORT]]) - return |
| | ||
Return code descriptions are: | Return code descriptions are: | ||
Line 38: | Line 38: | ||
==Example Code== | ==Example Code== | ||
===C Binding=== | ===C Binding=== | ||
+ | <code c> | ||
+ | #define INCL_DOSFILEMGR | ||
- | #define INCL_DOSFILEMGR | + | USHORT |
- | + | ||
- | | + | HFILE FileHandle; |
- | + | LONG | |
- | HFILE FileHandle; | + | USHORT |
- | LONG | + | PULONG |
- | USHORT | + | |
- | PULONG | + | |
- | + | ||
- | USHORT | + | |
+ | USHORT | ||
+ | </ | ||
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. | ||
+ | <code c> | ||
+ | #define INCL_DOSFILEMGR | ||
- | #define INCL_DOSFILEMGR | + | #define OPEN_FILE 0x01 |
- | + | #define CREATE_FILE 0x10 | |
- | | + | #define FILE_ARCHIVE 0x20 |
- | #define CREATE_FILE 0x10 | + | #define FILE_EXISTS OPEN_FILE |
- | #define FILE_ARCHIVE 0x20 | + | #define FILE_NOEXISTS CREATE_FILE |
- | #define FILE_EXISTS OPEN_FILE | + | #define DASD_FLAG 0 |
- | #define FILE_NOEXISTS CREATE_FILE | + | #define INHERIT 0x80 |
- | #define DASD_FLAG 0 | + | #define WRITE_THRU 0 |
- | #define INHERIT 0x80 | + | #define FAIL_FLAG 0 |
- | #define WRITE_THRU 0 | + | #define SHARE_FLAG 0x10 |
- | #define FAIL_FLAG 0 | + | #define ACCESS_FLAG 0x02 |
- | #define SHARE_FLAG 0x10 | + | |
- | #define ACCESS_FLAG 0x02 | + | |
- | + | ||
- | #define FILE_NAME " | + | |
- | #define FILE_SIZE 800L | + | |
- | #define FILE_ATTRIBUTE FILE_ARCHIVE | + | |
- | #define RESERVED 0L | + | |
- | + | ||
- | HFILE | + | |
- | USHORT | + | |
- | USHORT | + | |
- | PUSHORT Local | + | |
- | PSZ | + | |
- | USHORT | + | |
- | + | ||
- | | + | |
- | | + | |
- | | + | |
- | & | + | |
- | & | + | |
- | FILE_SIZE, | + | |
- | FILE_ATTRIBUTE, | + | |
- | FILE_EXISTS | FILE_NOEXISTS, | + | |
- | DASD_FLAG | INHERIT | /* Open mode of the file */ | + | |
- | WRITE_THRU | FAIL_FLAG | | + | |
- | SHARE_FLAG | ACCESS_FLAG, | + | |
- | RESERVED)) | + | |
- | if(!DosWrite(FileHandle, | + | |
- | | + | |
- | | + | |
- | & | + | |
- | rc = DosChgFilePtr(FileHandle, | + | |
- | MOVE_DIST, | + | |
- | FILE_BEG, | + | |
- | & | + | |
+ | #define FILE_NAME " | ||
+ | #define FILE_SIZE 800L | ||
+ | #define FILE_ATTRIBUTE FILE_ARCHIVE | ||
+ | #define RESERVED 0L | ||
+ | |||
+ | HFILE | ||
+ | USHORT | ||
+ | USHORT | ||
+ | PUSHORT Local | ||
+ | PSZ | ||
+ | USHORT | ||
+ | |||
+ | Action = 2; | ||
+ | strcpy(FileData, | ||
+ | if(!DosOpen(FILE_NAME, | ||
+ | & | ||
+ | & | ||
+ | FILE_SIZE, | ||
+ | FILE_ATTRIBUTE, | ||
+ | FILE_EXISTS | FILE_NOEXISTS, | ||
+ | DASD_FLAG | INHERIT | /* Open mode of the file */ | ||
+ | WRITE_THRU | FAIL_FLAG | | ||
+ | SHARE_FLAG | ACCESS_FLAG, | ||
+ | RESERVED)) | ||
+ | if(!DosWrite(FileHandle, | ||
+ | | ||
+ | | ||
+ | & | ||
+ | rc = DosChgFilePtr(FileHandle, | ||
+ | MOVE_DIST, | ||
+ | FILE_BEG, | ||
+ | & | ||
+ | </ | ||
===MASM Binding=== | ===MASM Binding=== | ||
- | + | <code asm> | |
- | EXTRN DosChgFilePtr: | + | EXTRN DosChgFilePtr: |
- | INCL_DOSFILEMGR | + | INCL_DOSFILEMGR |
| | ||
- | | + | PUSH |
- | PUSH | + | PUSH |
- | PUSH | + | PUSH |
- | PUSH@ DWORD | + | PUSH@ DWORD |
- | CALL | + | CALL |
+ | </ | ||
Returns WORD | Returns WORD | ||