Veritas™ File System プログラマーズリファレンスガイド - Linux
- Veritas File System Software Developer's Kit
- FCL(File Change Log)
- マルチボリュームサポート
- 名前付きデータストリーム
- Veritas File System I/O
- シン再生
パラメータ
次に、vxfs_fcl_seek() 関数の構文を示します。
int vxfs_fcl_seek(void *handle, struct fcl_cookie *cookie, int where)
この関数には次のパラメータがあります。
*handle パラメータは、vxfs_fcl_open() の呼び出しによって返されたハンドルと同じにしてください。これは必ずしも、vxfs_fcl_getcookie() で使われるハンドルと同じではありません。アプリケーションは 1 つのセッションで FCL ファイルを開き、cookie を取得し、FCL ファイルを閉じてから、後のセッションで FCL ファイルを開き、保存された cookie を提出することがあります。有効なハンドルは、FCL ファイルに対して開かれたセッションごとに、そのセッションの vxfs_fcl_open() によって返されたハンドルです。
*cookie パラメータは、同じ FCL ファイルか、そのチェックポイントの 1 つ、または同じ FCL ファイルのダンプまたはリストアされたコピーの 1 つにある、vxfs_fcl_getcookie() の呼び出しから返された有効な cookie を指す必要があります。特定の cookie にとって有効な FCL ファイルを決定し、目的にかなう組み合わせで FCL ファイルを使うのはユーザーアプリケーションの役割です。
メモ:
*cookie パラメータは、where の値が FCL_SEEK_SET または FCL_SEEK_END の場合にヌルになることがあります。
where パラメータの値は、FCL_SEEK_SET、FCL_SEEK_END、FCL_SEEK_COOOKIE のいずれかにしてください。
where が FCL_SEEK_SET または FCL_SEEK_END である場合、*cookie パラメータは無視され、vxfs_fcl_seek() は FCL ファイルの開始点または終了点のどちらかにシークします。つまり、値はそれぞれ、最初の FCL レコードが始まる位置、または最後のレコードが終わる位置です。
where の値が FCL_SEEK_COOKIE である場合、vxfs_fcl_seek() は *cookie パラメータに格納されているアクティブ化時間とオフセットを抽出します。
アプリケーションが最後に vxfs_fcl_getcookie() 関数を呼び出したときから FCL が非アクティブ化(オフに)されている場合や、*cookie に含まれるオフセットの位置にあったレコードがホールのパンチによってパージされた場合、vxfs_fcl_seek() は FCL_ EMISSEDRECORD エラーを返します。エラーが返されなければ、vxfs_fcl_seek は、現在のファイルの位置を、cookie に含まれているオフセットに設定します。さらに vxfs_fcl_read() を呼び出すと、このオフセットからレコードが返されます。