PVK_OpenExt( ): Extended File Open
Format
int PVK_OpenExt (HPVKENV hEnv, char *path, char *pswd, int pswd_sz, INT16 opt, INT32 *open_err);
Where:
hEnv | Handle to environment structure created by PVK_AllocEnv( ) |
path | Pointer to a null terminated string containing the pathname of the keyed/direct/indexed/view file to open |
pswd | Pointer to a buffer that contains the optional password required to access a keyed or direct file |
pswd_sz | Indicates the length of the pswd buffer |
opt | Indicates whether a file should be opened in read-only mode (Windows or UNIX) or for exclusive use (Windows Only) |
open_err | Error code (See Error Code values) |
Description
PVK_OpenExt( ) is used to open a PxPlus keyed/direct/indexed/EFF files or Views which requires a password or extended options. It will return the logical file handle for the file, provided it can be opened. All subsequent file I/O calls to PXPIO functions must specify the returned handle.
Valid opt values include WSF_INPUT for read-only and WSF_LOCK for exclusive mode. A value of -1 is returned if the file cannot be opened.
Opt Table | ||
|---|---|---|
#define FAM_READONLY | 0x0000 | /* File in read only mode */ |
#define FAM_READWRITE | 0x0001 | /* File in read write mode */ |
#define WSF_LOCK | 0x0400 | /* File was opened with exclusive use */ |
PXPIO Error Codes | ||
|---|---|---|
#define ERR_OK | 0 | /* no error */ |
#define ERR_CANT_OPEN | 1 | |
#define ERR_BAD_FH | 2 | |
#define ERR_NOSUCH_KEY | 3 | |
#define ERR_EOF | 4 | |
#define ERR_BAD_TYPE | 5 | |
#define ERR_KEYNO | 6 | |
#define ERR_KEY_LENGTH | 7 | |
#define ERR_NO_MEMORY | 8 | |
#define ERR_KIO_OFS | 9 | |
#define ERR_KIO_FAILED | 10 | |
#define ERR_KIO_WRONG | 11 | |
#define ERR_KSZ_WRONG | 12 | |
#define ERR_RSZ_WRONG | 13 | |
#define ERR_SEEK_FAILED | 14 | |
#define ERR_READ_FAILED | 15 | |
#define ERR_READ_SHORT | 16 | |
#define ERR_BAD_FUNCTION | 17 | |
#define ERR_INDEXED_FILE | 18 | |
#define ERR_WRITE_FAILED | 19 | |
#define ERR_KIO_BADADR | 20 | |
#define ERR_KIO_DELCHN | 21 | |
#define ERR_KIO_NOEOF | 22 | |
#define ERR_BUSY | 23 | /* File or Data busy */ |
#define ERR_FILE_FULL | 24 | |
#define ERR_NOT_REGISTERED | 25 | |
#define ERR_DOM | 26 | /* Duplicate key not allowed – if missing Rpt ERR_NO_SUCH_KEY */ |
#define ERR_KIO_RSIZE | 27 | /* Keyed file error (Record length invalid) */ |
#define ERR_KIO_BADSEG | 28 | /* Invalid segment number */ |
#define ERR_IND_HEADER | 29 | /* Unable to access Indexed file header */ |
#define ERR_KIO_DECOMPFAIL | 30 | /* Decompress of record failed */ |
#define ERR_PSWD_WRONG | 31 | /* Wrong password supplied */ |
#define ERR_BAD_OFFSET | 32 | /* Bad Read Offset */ |
#define ERR_NO_SUCH_FILE | 33 | /* File does not exist (or already exists) */ |
#define ERR_RESTRICT_FAILED | 34 | |
#define ERR_ACCESS_VLTN | 35 | /* Access violation, attempt to write to Read Only file */ |
#define ERR_TX_BEGIN | 36 | /* Begin transaction without finishing previous */ |
#define ERR_TX_ROLLBACK | 37 | /* Rollback/Commit without proper Begin transaction */ |
#define ERR_FILE_BUSY | 38 | /* File is busy */ |
#define ERR_MISSING_INFO | 39 | /* Not enough information passed in */ |
#define ERR_OBJ_VER_WRONG | 40 | |
#define ERR_BAD_BUFFER | 41 | /* Incorrect buffer returned from page_get */ |
#define ERR_SYS_NOFH | 42 | /* os error: No more file handles available (too many open files)*/ |
#define ERR_NET_FAILED | 43 | /* network error */ |
#define ERR_VERSION | 44 | |
#define ERR_SECURITY_FAILED | 45 | /* Logon failed */ |
#define ERR_PVK_NOTSUPPORTED | 46 | /* Feature is not supported */ |