gfs_pio_create

Autres langues

Langue: ja

Version: 31 October 2004 (ubuntu - 25/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

gfs_pio_create - Gfarmファイルの作成

SYNOPSIS

#include <gfarm/gfarm.h>

char *gfs_pio_create (char * gfarm_url, int flags, mode_t mode, GFS_File * gfp);

DESCRIPTION

指定した gfarm_url に、モード mode でファイルを新規作成し、 GFS_File 構造体を gfp の指す先に返します。

引数 flags は、 gfs_pio_open() の第二引数と同じ意味を持ちます。 GFARM_FILE_RDONLYGFARM_FILE_WRONLYGFARM_FILE_RDWR のいずれか一つのフラグを必ず指定しなければならない点も同じです。 ただし、 gfs_pio_create() に特有のフラグとして、 GFARM_FILE_EXCLUSIVE を指定することができます。この指定を行なった場合、 ファイルが既に存在する場合は、ファイルのオープンに失敗します。

以前のバージョンでは、引数 flags の値として GFARM_FILE_TRUNC が暗黙裡に仮定されていましたが、gfarm-1.0.4 以降は、 明示的に指定しなければならなくなりましたので、ご注意ください。

gfrun(3) や gfmpirun_p4(3) で起動された並列プロセスで gfs_pio_create() を呼ぶ場合、それぞれのプロセスは引数 mode に、一貫した値を指定しなければなりません。 また、この場合それぞれのプロセスの GFS_File 構造体は個別ファイルポインタを持ちます。

RETURN VALUES

NULL
正常終了を示します。
GFARM_ERR_NO_MEMORY
メモリ不足のため処理を中止しました。
GFARM_ERR_AUTHENTICATION
gfmd(8) あるいは gfsd(8) に対するユーザー認証が失敗しました。
GFARM_ERR_PERMISSION_DENIED
gfarm_urlへ、 flags で指定されたモードでアクセスする権限がないか、その親ディレクトリへの 書き込み権限がありません。
GFARM_ERR_ALREADY_EXISTS
flags引数に GFARM_FILE_EXCLUSIVEフラグが指定されたが、 ファイルが既に存在しました。
GFARM_ERR_IS_A_DIRECTORY
指定された gfarm_url は、ディレクトリです。
GFARM_ERR_NO_SUCH_OBJECT
指定したパス名の親ディレクトリが、実際には存在しなかったことを示します。
GFARM_ERR_NOT_A_DIRECTORY
指定したパス名の親ディレクトリが、実際にはディレクトリでなかったことを 示します。
その他
上記以外のエラーが生じたことを示します。

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_set_view_index(3), gfs_pio_set_view_local(3), gfs_pio_ungetc(3), gfs_pio_write(3)