29.6 Cartridge Services — File I/O Interface
Lists and describes cartridge services file I/O interface functions.
Table 29-5 lists the file I/O interface functions that are described in this section.
Table 29-5 File I/O Interface Functions
Function | Purpose |
---|---|
Close a previously opened file |
|
Test to see if the file exists |
|
Write buffered data to a file |
|
Get the length of a file |
|
Initialize the OCIFile package |
|
Open a file |
|
Read from a file into a buffer |
|
Change the current position in a file |
|
Terminate the OCIFile package |
|
Write |
See Also:
Oracle Database Data Cartridge Developer's Guide for more information about using these functions
OCIFileObject
The OCIFileObject
data structure holds information about the way in which a file should be opened and the way in which it is accessed after it has been opened. When this structure is initialized by OCIFileOpen()
, it becomes an identifier through which operations can be performed on that file. It is a necessary parameter to every function that operates on open files. This data structure is opaque to OCIFile clients. It is initialized by OCIFileOpen() and terminated by OCIFileClose().
29.6.1 OCIFileClose()
Closes a previously opened file.
Purpose
Closes a previously opened file.
Syntax
sword OCIFileClose( void *hndl, OCIError *err, OCIFileObject *filep );
Parameters
Comments
Once this function returns OCI_SUCCESS, the OCIFileObject
structure pointed to by filep
is destroyed. Therefore, you should not attempt to access this structure after this function returns OCI_SUCCESS.
Returns
OCI_SUCCESS
; OCI_INVALID_HANDLE
; or OCI_ERROR
.
Related Topics
29.6.2 OCIFileExists()
Tests to see if the file exists.
Purpose
Tests to see if the file exists.
Syntax
sword OCIFileExists( void *hndl, OCIError *err, OraText *filename, OraText *path, ub1 *flag );
Parameters
- hndl (IN)
-
The OCI environment or user session handle.
- err (IN/OUT)
-
The OCI error handle. If there is an error, it is recorded in
err
, and this function returnsOCI_ERROR
. Diagnostic information can be obtained by callingOCIErrorGet()
. - filename (IN)
-
The file name as a
NULL
-terminated string. - path (IN)
-
The path of the file as a
NULL
-terminated string. - flag (OUT)
-
Set to
TRUE
if the file exists orFALSE
if it does not.
Returns
OCI_SUCCESS
; OCI_INVALID_HANDLE
; or OCI_ERROR
.
Related Topics
29.6.3 OCIFileFlush()
Writes buffered data to a file.
Purpose
Writes buffered data to a file.
Syntax
sword OCIFileFlush( void *hndl OCIError *err, OCIFileObject *filep );
Parameters
- hndl (IN)
-
The OCI environment or user session handle.
- err (IN/OUT)
-
The OCI error handle. If there is an error, it is recorded in
err
, and this function returnsOCI_ERROR
. Diagnostic information can be obtained by callingOCIErrorGet()
. - filep (IN/OUT)
-
A file identifier that uniquely references the file.
Returns
OCI_SUCCESS
; OCI_INVALID_HANDLE
; or OCI_ERROR
.
Related Topics
29.6.4 OCIFileGetLength()
Gets the length of a file.
Purpose
Gets the length of a file.
Syntax
sword OCIFileGetLength( void *hndl, OCIError *err, OraText *filename, OraText *path, ubig_ora *lenp );
Parameters
- hndl (IN)
-
The OCI environment or user session handle.
- err (IN/OUT)
-
The OCI error handle. If there is an error, it is recorded in
err
, and this function returnsOCI_ERROR
. Diagnostic information can be obtained by callingOCIErrorGet()
. - filename (IN)
-
The file name as a
NULL
-terminated string. - path (IN)
-
The path of the file as a
NULL
-terminated string. - lenp (OUT)
-
Set to the length of the file in bytes.
Returns
OCI_SUCCESS
; OCI_INVALID_HANDLE
; or OCI_ERROR
.
Related Topics
29.6.5 OCIFileInit()
Initializes the OCIFile package.
Purpose
This function must be called before any other OCIFile routine is called.
Syntax
sword OCIFileInit( void *hndl, OCIError *err );
Parameters
Returns
OCI_SUCCESS
; OCI_INVALID_HANDLE
; or OCI_ERROR
.
Related Topics
29.6.6 OCIFileOpen()
Opens a file.
Purpose
Opens a file.
Syntax
sword OCIFileOpen( void *hndl, OCIError *err, OCIFileObject **filep, OraText *filename, OraText *path, ub4 mode, ub4 create, ub4 type );
Parameters
- hndl (IN)
-
The OCI environment or user session handle.
- err (IN/OUT)
-
The OCI error handle. If there is an error, it is recorded in
err
, and this function returnsOCI_ERROR
. Diagnostic information can be obtained by callingOCIErrorGet()
. - filep (IN/OUT)
-
The file identifier.
- filename (IN)
-
The file name as a
NULL
-terminated string. - path (IN)
-
The path of the file as a
NULL
-terminated string. - mode (IN)
-
The mode in which to open the file. Valid modes are
OCI_FILE_READ_ONLY
OCI_FILE_WRITE_ONLY
OCI_FILE_READ_WRITE
- create (IN)
-
Indicates if the file is to be created if it does not exist. Valid values are:
OCI_FILE_TRUNCATE
— Create a file regardless of whether it exists. If the file exists, overwrite the existing file.OCI_FILE_EXCL
— Fail if the file exists; otherwise, create a file.OCI_FILE_CREATE
— Open the file if it exists, and create it if it does not.OCI_FILE_APPEND
— Set the file pointer to the end of the file prior to writing. This flag can be used with the logical operator OR withOCI_FILE_CREATE
. - type (IN)
-
File type. Valid values are:
OCI_FILE_TEXT
OCI_FILE_BIN
OCI_FILE_STDIN
OCI_FILE_STDOUT
OCI_FILE_STDERR
Returns
OCI_SUCCESS
; OCI_INVALID_HANDLE
; or OCI_ERROR
.
Related Topics
29.6.7 OCIFileRead()
Reads from a file into a buffer.
Purpose
Reads from a file into a buffer.
Syntax
sword OCIFileRead( void *hndl, OCIError *err, OCIFileObject *filep, void *bufp, ub4 bufl, ub4 *bytesread );
Parameters
- hndl (IN)
-
The OCI environment or user session handle.
- err (IN/OUT)
-
The OCI error handle. If there is an error, it is recorded in
err
, and this function returnsOCI_ERROR
. Diagnostic information can be obtained by callingOCIErrorGet()
. - filep (IN/OUT)
-
A file identifier that uniquely references the file.
- bufp (IN)
-
The pointer to a buffer into which the data is read. The length of the allocated memory is assumed to be
bufl
. - bufl (IN)
-
The length of the buffer in bytes.
- bytesread (OUT)
-
The number of bytes read.
Comments
As many bytes as possible are read into the user buffer. The read ends either when the user buffer is full, or when it reaches end-of-file.
Returns
OCI_SUCCESS
; OCI_INVALID_HANDLE
; or OCI_ERROR
.
Related Topics
29.6.8 OCIFileSeek()
Changes the current position in a file.
Purpose
Changes the current position in a file.
Syntax
sword OCIFileSeek( void *hndl, OCIError *err, OCIFileObject *filep, uword origin, ubig_ora offset, sb1 dir );
Parameters
- hndl (IN)
-
The OCI environment or user session handle.
- err (IN/OUT)
-
The OCI error handle. If there is an error, it is recorded in
err
, and this function returnsOCI_ERROR
. Diagnostic information can be obtained by callingOCIErrorGet()
. - filep (IN/OUT)
-
A file identifier that uniquely references the file.
- origin(IN)
-
The starting point from which to seek. Use one of the following values:
OCI_FILE_SEEK_BEGINNING
(beginning)OCI_FILE_SEEK_CURRENT
(current position)OCI_FILE_SEEK_END
(end of file) - offset (IN)
-
The number of bytes from the origin where reading begins.
- dir (IN)
-
The direction to go from the origin.
Note:
The direction can be either
OCIFILE_FORWARD
orOCIFILE_BACKWARD
.
Comments
This function allows a seek past the end of the file. Reading from such a position causes an end-of-file condition to be reported. Writing to such a position does not work on all file systems. This is because some systems do not allow files to grow dynamically. They require that files be preallocated with a fixed size. Note that this function performs a seek to a byte location.
Returns
OCI_SUCCESS
; OCI_INVALID_HANDLE
; or OCI_ERROR
.
Related Topics
29.6.9 OCIFileTerm()
Terminates the OCIFile package.
Purpose
This function must be called after the OCIFile package is no longer being used.
Syntax
sword OCIFileTerm( void *hndl, OCIError *err );
Parameters
Returns
OCI_SUCCESS
; OCI_INVALID_HANDLE
; or OCI_ERROR
.
Related Topics
29.6.10 OCIFileWrite()
Writes buflen
bytes into the file.
Purpose
Writes buflen
bytes into the file.
Syntax
sword OCIFileWrite( void *hndl, OCIError *err, OCIFileObject *filep, void *bufp, ub4 buflen, ub4 *byteswritten );
Parameters
- hndl (IN)
-
The OCI environment or user session handle.
- err (IN/OUT)
-
The OCI error handle. If there is an error, it is recorded in
err
, and this function returnsOCI_ERROR
. Diagnostic information can be obtained by callingOCIErrorGet()
. - filep (IN/OUT)
-
A file identifier that uniquely references the file.
- bufp(IN)
-
The pointer to a buffer from which the data is written. The length of the allocated memory is assumed to be
buflen
. - buflen (IN)
-
The length of the buffer in bytes.
- byteswritten (OUT)
-
The number of bytes written.
Returns
OCI_SUCCESS
; OCI_INVALID_HANDLE
; or OCI_ERROR
.
Related Topics