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_ONLYOCI_FILE_WRITE_ONLYOCI_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_TEXTOCI_FILE_BINOCI_FILE_STDINOCI_FILE_STDOUTOCI_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。
関連トピック