#include <gfarm/gfarm.h>
gfarm_error_t gfs_pio_create( |
gfarm_url, | |
flags, | ||
mode, | ||
gfp) ; |
const char * gfarm_url
;int flags
;gfarm_mode_t mode
;GFS_File * gfp
;指定した
gfarm_url
に、モード
mode
でファイルを新規作成し、
GFS_File
構造体を
gfp
の指す先に返します。
引数
flags
は、
gfs_pio_open()
の第二引数と同じ意味を持ちます。
GFARM_FILE_RDONLY
、
GFARM_FILE_WRONLY
、
GFARM_FILE_RDWR
のいずれか一つのフラグを必ず指定しなければならない点も同じです。
ただし、
gfs_pio_create()
に特有のフラグとして、
GFARM_FILE_EXCLUSIVE
を指定することができます。この指定を行なった場合、
ファイルが既に存在する場合は、ファイルのオープンに失敗します。
引数
flags
の値として
GFARM_FILE_TRUNC
が必要な場合は、
明示的に指定する必要がありますので、ご注意ください。
GFARM_ERR_NO_ERROR
正常終了を示します。
GFARM_ERR_IS_A_DIRECTORY
指定されたファイルはディレクトリです。
GFARM_ERR_IS_A_SYMBOLIC_LINK
指定されたファイルはシンボリックリンクです。
GFARM_ERR_OPERATION_NOT_PERMITTED
指定されたファイルはファイルではありません。
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_ERR_ALREADY_EXISTS
flags
引数に
GFARM_FILE_EXCLUSIVE
フラグが指定されたが、
ファイルが既に存在しました。
上記以外のエラーが生じたことを示します。 gfarm_error_string(3) によりエラーの原因を文字列に変換することができます。