日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
rename |
既存のファイルに新しい名前を与えます。
#include <stdio.h>int rename (const char *old_file_spec, const char *new_file_spec);
old_file_spec
名前を変更するファイルの既存の名前である文字列へのポインタ。new_file_spec
ファイルの新しい名前となる文字列へのポインタ。
現在オープンされているファイルの名前を変更しようと試みた場合の動作は未定義です。 1 つの物理デバイスから別の物理デバイスへとファイルの名前を変更することはできません。古いファイル指定と新しいファイル指定は,同じデバイス上に存在している必要があります。new_file_spec がファイル・タイプを含んでいない場合には, old_file_spec のファイル・タイプが使用されます。名前を変更して,ファイル・タイプをなくすには, new_file_spec にピリオド (.) が含まれていなくてはなりません。たとえば,次のようにすると, SYS$DISK:[]FILE.DAT が SYS$DISK:[]FILE1.DAT に変更されます。
rename("file.dat", "file1");
ただし,次の呼び出しは,SYS$DISK:[]FILE.DAT を SYS$DISK:[]FILE1 に変更します。
rename("file.dat", "file1.");
注意
rename関数はファイル・タイプの特殊な処理を行うので,ファイル名引数を受け付ける C ランタイム・ライブラリ関数の呼び出しで,名前を変更したファイルの名前を指定するときには,呼び出し元は慎重になる必要があります。たとえば,次の rename関数の呼び出しの後,新しいファイルは fopen("bar.dat",...)としてオープンする必要があります。
rename("foo.dat", "bar");
rename関数は,DECC$RENAME_NO_INHERIT 機能論理名と DECC$RENAME_ALLOW_DIR 機能論理名の設定に影響されます。
- DECC$RENAME_NO_INHERIT は,ファイルの新しい名前が古い名前から何か (たとえば,ファイル・タイプ) を継承するか,または完全に指定しなければならないかに影響します。
- DECC$RENAME_ALLOW_DIR を使用すると,あいまいなファイル指定が 2 番目の引数の論理名として渡された場合にディレクトリ指定への変換を許すという以前の OpenVMS 動作にするか,ファイルからディレクトリへの名前変更を許さない UNIX 準拠の動作にするかを選択できます。
詳細は,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.5 節の DECC$RENAME_NO_INHERIT と DECC$RENAME_ALLOW_DIR の説明を参照してください。
0 成功を示します。 ゼロ以外の値 失敗を示します。
- EISDIR -- 新しい引数はディレクトリを示し,古い引数はディレクトリではないファイルを示しています。
- EEXIST -- 新しい引数は既存のディレクトリを示しています。
- ENOTDIR -- 古い引数はディレクトリを示し,新しい引数はディレクトリ以外のファイルを示しています。
- ENOENT -- 古い引数は存在しないファイル,ディレクトリ,あるいはデバイスを示しています。
あるいは,新しい引数は存在しないディレクトリ・パスあるいはデバイスを示しています。
目次 | 索引 |
|