29.6 カートリッジ・サービス — ファイルI/Oインタフェース
カートリッジ・サービスのファイルI/Oインタフェース関数をリストし、説明します。
表29-5は、この項で説明しているファイルI/Oインタフェース関数を示しています。
表29-5 ファイルI/Oインタフェース関数
関数 | 用途 |
---|---|
オープンされているファイルをクローズします。 |
|
ファイルの存在を確認するためにテストします。 |
|
バッファ・データをファイルに書き込みます。 |
|
ファイルの長さを取得します。 |
|
OCIFileパッケージを初期化します。 |
|
ファイルをオープンします |
|
ファイルからバッファにデータを読み取ります。 |
|
ファイルの現行の位置を変更します。 |
|
OCIFileパッケージを終了します。 |
|
|
関連項目:
これらの関数の使用方法の詳細は、『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください
OCIFileObject
OCIFileObject
データ構造には、ファイルのオープン方法およびオープンしてからそのファイルへアクセスする方法に関する情報が保持されています。この構造をOCIFileOpen()
で初期化すると、ファイルで実行可能な操作によって識別子となります。このパラメータは、オープンされているファイルで実行するすべての機能に必要です。このデータ構造はOCIFileクライアントには不透明です。これはOCIFileOpen()で初期化し、OCIFileClose()で終了します。
29.6.1 OCIFileClose()
オープンされているファイルをクローズします。
用途
オープンされているファイルをクローズします。
構文
sword OCIFileClose( void *hndl, OCIError *err, OCIFileObject *filep );
パラメータ
コメント
この関数によってOCI_SUCCESSが戻されると、filep
によって指し示されたOCIFileObject
構造は破棄されます。したがって、この関数によってOCI_SUCCESSが戻されてからこの構造にはアクセスしないでください。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック
29.6.2 OCIFileExists()
ファイルの存在を確認するためにテストします。
用途
ファイルの存在を確認するためにテストします。
構文
sword OCIFileExists( void *hndl, OCIError *err, OraText *filename, OraText *path, ub1 *flag );
パラメータ
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック
29.6.3 OCIFileFlush()
バッファ・データをファイルに書き込みます。
用途
バッファ・データをファイルに書き込みます。
構文
sword OCIFileFlush( void *hndl OCIError *err, OCIFileObject *filep );
パラメータ
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック
29.6.4 OCIFileGetLength()
ファイルの長さを取得します。
用途
ファイルの長さを取得します。
構文
sword OCIFileGetLength( void *hndl, OCIError *err, OraText *filename, OraText *path, ubig_ora *lenp );
パラメータ
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック
29.6.5 OCIFileInit()
OCIFileパッケージを初期化します。
用途
この関数をコールしてから、他のOCIFileルーチンをコールする必要があります。
構文
sword OCIFileInit( void *hndl, OCIError *err );
パラメータ
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック
29.6.6 OCIFileOpen()
ファイルをオープンします。
用途
ファイルをオープンします。
構文
sword OCIFileOpen( void *hndl, OCIError *err, OCIFileObject **filep, OraText *filename, OraText *path, ub4 mode, ub4 create, ub4 type );
パラメータ
- hndl (IN)
-
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。
- err (IN/OUT)
-
OCIエラー・ハンドルです。エラーがある場合は、
err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
のコールによって診断情報を取得できます。 - filep (IN/OUT)
-
ファイル識別子です。
- filename (IN)
-
NULL
で終了する文字列のファイル名です。 - path (IN)
-
NULL
で終了する文字列のファイルのパスです。 - mode (IN)
-
ファイルをオープンするモードです。次のモードが有効です
OCI_FILE_READ_ONLY
OCI_FILE_WRITE_ONLY
OCI_FILE_READ_WRITE
- create (IN)
-
ファイルが存在しない場合に作成するかどうか指定します。次の値が有効です。
OCI_FILE_TRUNCATE
— ファイルをその存在の有無に関係なく作成します。ファイルが存在する場合は、既存のファイルが上書きされます。OCI_FILE_EXCL
— ファイルが存在する場合は失敗し、存在しない場合はファイルが作成されます。OCI_FILE_CREATE
— ファイルが存在する場合はそのファイルをオープンし、存在しない場合はファイルが作成されます。OCI_FILE_APPEND
— 書込みの前にファイルの終わりへのファイル・ポインタを設定します。このフラグは、OCI_FILE_CREATE
で論理演算子ORとともに使用できます。 - type (IN)
-
ファイルの型。次の値が有効です。
OCI_FILE_TEXT
OCI_FILE_BIN
OCI_FILE_STDIN
OCI_FILE_STDOUT
OCI_FILE_STDERR
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック
29.6.7 OCIFileRead()
ファイルからバッファにデータを読み取ります。
用途
ファイルからバッファにデータを読み取ります。
構文
sword OCIFileRead( void *hndl, OCIError *err, OCIFileObject *filep, void *bufp, ub4 bufl, ub4 *bytesread );
パラメータ
コメント
可能なバイト数をユーザー・バッファに読み取ります。読取りはユーザー・バッファが一杯になった場合、またはEOFに達すると終了します。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック
29.6.8 OCIFileSeek()
ファイルの現行の位置を変更します。
用途
ファイルの現行の位置を変更します。
構文
sword OCIFileSeek( void *hndl, OCIError *err, OCIFileObject *filep, uword origin, ubig_ora offset, sb1 dir );
パラメータ
- hndl (IN)
-
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。
- err (IN/OUT)
-
OCIエラー・ハンドルです。エラーがある場合は、
err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
のコールによって診断情報を取得できます。 - filep (IN/OUT)
-
ファイルを参照する一意のファイル識別子です。
- origin(IN)
-
検索の開始地点です。以下の値のいずれかを使用します。
OCI_FILE_SEEK_BEGINNING
(先頭)OCI_FILE_SEEK_CURRENT
(現行の位置)OCI_FILE_SEEK_END
(EOF) - offset (IN)
-
読取り開始地点からのバイト数です。
- dir (IN)
-
開始地点から移動する方向です。
ノート:
方向は
OCIFILE_FORWARD
またはOCIFILE_BACKWARD
のいずれかです。
コメント
この関数では、ファイルの終わりを超えて検索できます。このような位置から読取りを実行すると、EOF条件がレポートされます。そのような位置への書込みは一部のファイル・システムでしか機能しません。これは、ファイルの動的成長が許可されていないシステムがあるためです。このようなシステムでは、ファイルを固定サイズで事前割当てする必要があります。この関数はバイト位置に対して検索を実行するということに注意してください。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック
29.6.9 OCIFileTerm()
OCIFileパッケージを終了します。
用途
この関数は、OCIFileパッケージを使用しなくなってからコールする必要があります。
構文
sword OCIFileTerm( void *hndl, OCIError *err );
パラメータ
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック