rename(2) FreeBSD 一般コマンドマニュアル

rename

前のページ 上に戻る 次のページ

rename




書式

     #include <stdio.h>

     int
     rename(const char *from, const char *to);


解説

     rename() によって from と名づけられたリンクを to に変更します。 to がすで
     に存在する場合は、先にこれを削除します。 fromto は同じタイプでなけれ
     ばならず (両方ともディレクトリであるか、両方ともディレクトリではないか)、
     同じファイルシステム上に存在している必要があります。

     rename() は、操作の途中でシステムがクラッシュしても to のインスタンスが必
     ず存在することを保証します。

     from の最後の構成要素がシンボリックリンクの場合、それが指しているファイル
     またはディレクトリではなく、そのシンボリックリンクの名前が変更されます。


戻り値

     関数 rename() は、処理が成功すると値 0 を返します。そうでない場合、値 -1
     が返され、グローバル変数 errno が設定されてエラーを示します。


エラー

     rename() は次の場合に失敗し、いずれの引数ファイルも影響を受けません。

     [ENAMETOOLONG]     いずれかのパス名の構成要素が 255 文字を越えているか、
                        またはいずれかのパス名全体の長さが 1023 文字を越えてい
                        ます。

     [ENOENT]           from パスの構成要素が存在しないか、または to の前置パ
                        ス名が存在しません。

     [EACCES]           指定されたパスには、検索が許可されていないディレクトリ
                        が含まれています。

     [EACCES]           指定されたリンクは、書込みが許可されていないディレクト
                        リへの書込みを要求しています。

     [EPERM]            from ファイルを含むディレクトリにスティッキービットが
                        設定されており、そのディレクトリと from のどちらの所有
                        者も実効ユーザ ID とは異なっています。

     [EPERM]            to ファイルが存在し、かつ to を含んでいるディレクトリ
                        にスティッキービットが設定されており、そのディレクトリ
                        と to ファイルのどちらの所有者も実効ユーザ ID とは異
                        なっています。

     [ELOOP]            パス名を変換するときに検出されたシンボリックリンクが多
                        すぎます。

     [ENOTDIR]          パスの構成要素中にディレクトリ以外のものが含まれていま
                        渇したため、新しい名前のためのエントリを置くディレクト
                        リを拡張できません。

     [EDQUOT]           ディレクトリを格納しているファイルシステム上のディスク
                        ブロックのユーザのクォータが枯渇したため、新しい名前の
                        ためのエントリを置くディレクトリを拡張できません。

     [EIO]              ディレクトリエントリを作成または更新している間に入出力
                        エラーが発生しました。

     [EROFS]            指定されたリンクは、読取り専用ファイルシステム上のディ
                        レクトリへの書込みを要求しています。

     [EFAULT]           path は、プロセスに割り当てられたアドレス空間の範囲外
                        を指しています。

     [EINVAL]           fromto の親ディレクトリであるか、 `.' または `..'
                        に名前を変更しようとしました。

     [ENOTEMPTY]        to はディレクトリであり、空ではありません。


関連項目

     open(2), symlink(7)


規格

     rename() 関数は ISO/IEC 9945-1:1990 (``POSIX.1'') に準拠しています。

FreeBSD 4.4                      June 4, 1993                      FreeBSD 4.4

ABELNET VPSサービス