指定した gfarm_url ファイルをオープンし、GFS_File 構造体を gfp の指す先に返します。
flags は、以下のフラグの bitwise-or で指定します。 はじめの三つのフラグはどれかが指定されている必要があります。
GFARM_FILE_RDONLY読込みモードでファイルをオープンします。
GFARM_FILE_WRONLY書込みモードでファイルをオープンします。
GFARM_FILE_RDWR読み書きモードでファイルをオープンします。
GFARM_FILE_TRUNCファイルが存在し,レギュラーファイルで、書込みが許される場合、ファイルサイズを0にします。
GFARM_FILE_APPENDファイルをアペンドモードでオープンします。
以下のフラグは効率的な実行のためのヒントとして指定することができます。
GFARM_FILE_SEQUENTIALファイルが連続的にアクセスされることを示します。
GFARM_FILE_REPLICATIONファイルの複製がローカル・ファイルシステムにない場合は、 ファイルアクセスに先立ち、 ローカル・ファイルシステムにファイルの複製を作成します。
GFARM_FILE_NOT_REPLICATIONファイルの複製がローカル・ファイルシステムにない場合でも、 ファイルの複製を作成せず、 遠隔のファイルシステムノードに格納されているファイルコピーを直接参照します。
GFARM_FILE_NOT_RETRY選択されたファイル複製が何らかの理由で存在しない、 あるいはアクセスできない場合でも、 自動的には別のファイル複製の参照を試みず、オープンに失敗します。
GFARM_FILE_REPLICATIONと
GFARM_FILE_NOT_REPLICATIONは同時に指定することはできません。
gfrun(3) や gfmpirun_p4(3) で起動された並列プロセスで gfs_pio_open() を呼ぶ場合、それぞれのプロセスの GFS_File 構造体は個別ファイルポインタを持ちます。
NULL正常終了を示します。
GFARM_ERR_NO_MEMORYメモリ不足のため処理を中止しました。
GFARM_ERR_AUTHENTICATIONgfmd(8) あるいは gfsd(8) に対するユーザー認証が失敗しました。
GFARM_ERR_PERMISSION_DENIEDgfarm_urlへ、 flags で指定されたモードでアクセスする権限が、ありません。
GFARM_ERR_IS_A_DIRECTORY指定された gfarm_url は、ディレクトリです。
GFARM_ERR_NO_SUCH_OBJECT指定されたファイルが存在しません。
GFARM_ERR_NOT_A_DIRECTORY指定したパス名の親ディレクトリが、実際にはディレクトリでなかったことを 示します。
上記以外のエラーが生じたことを示します。
gfs_pio_close(3), gfs_pio_create(3), gfs_pio_eof(3), gfs_pio_error(3), gfs_pio_flush(3), gfs_pio_getc(3), gfs_pio_getline(3), gfs_pio_open(3), gfs_pio_putc(3), gfs_pio_putline(3), gfs_pio_puts(3), gfs_pio_read(3), gfs_pio_seek(3), gfs_pio_set_view_index(3), gfs_pio_set_view_local(3), gfs_pio_ungetc(3), gfs_pio_write(3)