3 Sep 2015
gfs_pio_open 3 Gfarm
gfs_pio_open Gfarmファイルシステムのファイルのオープン

    #include <gfarm/gfarm.h>

`gfarm_error_t gfs_pio_open` const char * gfarm_url int flags GFS_File * gfp

## DESCRIPTION

gfarm_url で指定したファイルをオープンし、GFS_File 構造体を gfp の指す先に返します。 gfarm_url はGfarmファイルシステムのパス名、あるいは gfarm://metaserver:port/path/name 形式のGfarm URLです。

flags は、以下のフラグの bitwise-or で指定します。 はじめの三つのフラグはどれかが指定されている必要があります。

`GFARM_FILE_RDONLY`

  読込みモードでファイルをオープンします。

`GFARM_FILE_WRONLY`

  書込みモードでファイルをオープンします。

`GFARM_FILE_RDWR`

  読み書きモードでファイルをオープンします。

`GFARM_FILE_TRUNC`

  ファイルが存在し、レギュラーファイルで書込みが許される場合、ファイルサイズを0にします。

`GFARM_FILE_APPEND`

  ファイルをアペンドモードでオープンします。

## RETURN VALUES

`GFARM_ERR_NO_ERROR`

  正常終了を示します。

`GFARM_ERR_IS_A_DIRECTORY`

  指定されたファイルはディレクトリです。

`GFARM_ERR_IS_A_SYMBOLIC_LINK`

  指定されたファイルはシンボリックリンクです。

`GFARM_ERR_OPERATION_NOT_PERMITTED`

  指定されたファイルはファイルではありません。

`GFARM_ERR_NO_SUCH_OBJECT`

  指定されたファイルが存在しません。

`GFARM_ERR_NOT_A_DIRECTORY`

  指定したパス名の親ディレクトリが、ディレクトリではありません。

`GFARM_ERR_PERMISSION_DENIED`

  指定されたファイルに対し、 flags で指定されたモードでアクセスする権限がないか、 メタデータサーバへの認証に失敗しました。

`GFARM_ERR_NO_MEMORY`

  メモリ不足のため処理を中止しました。

`GFARM_ERR_INVALID_ARGUMENT`

  flags の指定が不正です。

`GFARM_ERR_GFARM_URL_HOST_IS_MISSING`

  gfarm_url で指定されたGfarm URLにおいて、 メタデータサーバが指定されていません。

`GFARM_ERR_GFARM_URL_PORT_IS_MISSING`

  gfarm_url で指定されたGfarm URLにおいて、 メタデータサーバのポート番号が指定されていません。

`GFARM_ERR_UNKNOWN_HOST`

  指定されたメタデータサーバのアドレス解決ができません。

`GFARM_ERR_TOO_MANY_OPEN_FILES`

  プロセスにおけるオープン可能なファイル数の限界に達しました。

`GFARM_ERR_TOO_MANY_OPEN_FILES_IN_SYSTEM`

  システムにおけるオープンできるファイル数の限界に達しました。

`GFARM_ERR_NETWORK_IS_UNREACHABLE`

  メタデータサーバに到達できません。

`GFARM_ERR_OPERATION_TIMED_OUT`

  メタデータサーバへの接続がタイムアウトをおこしました。

`GFARM_ERR_PROTOCOL`

  メタデータサーバとの通信にプロトコルエラーが発生しました。

`GFARM_ERR_BROKEN_PIPE`

  メタデータサーバとの通信が切断しました。

`GFARM_ERR_PROTOCOL_NOT_SUPPORTED`

  指定された認証プロトコルはサポートしていません。

`GFARM_ERR_AUTHENTICATION`

  メタデータサーバに対する認証に失敗しました。

その他

  上記以外のエラーが生じたことを示します。 gfarm_error_string 3 によりエラーの原因を文字列に変換することができます。

## SEE ALSO

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_ungetc 3, gfs_pio_write 3