.\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rename.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/rename.2,v 1.22 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt RENAME 2 .Os .Sh 名称 .Nm rename .Nd ファイル名を変更する .Sh ライブラリ .Lb libc .Sh 書式 .In stdio.h .Ft int .Fn rename "const char *from" "const char *to" .Sh 解説 .Fn rename システムコールによって .Fa from と名づけられたリンクを .Fa to に変更します。 .Fa to がすでに存在する場合は、先にこれを削除します。 .Fa from と .Fa to は同じタイプでなければならず (両方とも ディレクトリであるか、両方ともディレクトリではないか)、 同じファイルシステム上に存在している必要があります。 .Pp .Fa to が既に存在する場合には、操作の途中でシステムがクラッシュしたとしても、 .Fn rename システムコールは .Fa to のインスタンスが必ず存在することを保証します。 .Pp .Fa from の最後の構成要素がシンボリックリンクの場合、それが指している ファイルまたはディレクトリではなく、 そのシンボリックリンクの名前が変更されます。 .\".Sh CAVEAT .\"The system can deadlock if a loop in the file system graph is present. .\"This loop takes the form of an entry in directory .\".Pa a , .\"say .\".Pa a/foo , .\"being a hard link to directory .\".Pa b , .\"and an entry in .\"directory .\".Pa b , .\"say .\".Pa b/bar , .\"being a hard link .\"to directory .\".Pa a . .\"When such a loop exists and two separate processes attempt to .\"perform .\".Ql rename a/foo b/bar .\"and .\".Ql rename b/bar a/foo , .\"respectively, .\"the system may deadlock attempting to lock .\"both directories for modification. .\"Hard links to directories should be .\"replaced by symbolic links by the system administrator. .Sh 戻り値 .Rv -std rename .Sh エラー .Fn rename システムコールは次の場合に失敗し、いずれの引数ファイルも影響を受けません: .Bl -tag -width Er .It Bq Er ENAMETOOLONG いずれかのパス名の構成要素が 255 文字を越えているか、またはいずれかの パス名全体の長さが 1023 文字を越えています。 .It Bq Er ENOENT .Fa from パスの構成要素が存在しないか、または .Fa to の前置パス名が存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er EACCES 指定されたリンクは、書込みが許可されていない ディレクトリへの書込みを要求しています。 .It Bq Er EPERM .Fa from ファイルを含むディレクトリにスティッキビットが設定されており、 そのディレクトリと .Fa from のどちらの所有者も実効ユーザ ID とは異なっています。 .It Bq Er EPERM .Fa to 引数によって指されるファイルが存在し、かつ .Fa to を含んでいるディレクトリにスティッキビットが設定されており、 そのディレクトリと .Fa to ファイルのどちらの所有者も実効ユーザ ID とは異なっています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENOTDIR .Fa from 引数はディレクトリですが、 .Fa to はディレクトリではありません。 .It Bq Er EISDIR .Fa to 引数はディレクトリですが、 .Fa from はディレクトリではありません。 .It Bq Er EXDEV .Fa to によって指定されたリンク、および .Fa from によって指定されたファイルが 異なる論理デバイス (ファイルシステム) 上にあります。 実装がクロスデバイスリンクを許容する場合、このエラーコードは 返らないことに注意してください。 .It Bq Er ENOSPC ディレクトリを格納しているファイルシステム上の空間が枯渇したため、 新しい名前のためのエントリを置くディレクトリを拡張できません。 .It Bq Er EDQUOT ディレクトリを格納しているファイルシステム上のディスクブロックのユーザの クォータが枯渇したため、 新しい名前のためのエントリを置くディレクトリを拡張できません。 .It Bq Er EIO ディレクトリエントリを作成または更新している間に入出力エラーが発生しました。 .It Bq Er EROFS 指定されたリンクは、読取り専用ファイルシステム上のディレクトリへの 書込みを要求しています。 .It Bq Er EFAULT path は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EINVAL .Fa from 引数が .Fa to の親ディレクトリであるか、 .Ql .\& または .Ql \&.. に名前を変更しようとしました。 .It Bq Er ENOTEMPTY .Fa to 引数はディレクトリであり、空ではありません。 .El .Sh 関連項目 .Xr open 2 , .Xr symlink 7 .Sh 規格 .Fn rename システムコールは .St -p1003.1-96 に適合しています。