函数
<cstdio>

rename

int rename ( const char * oldname, const char * newname );
重命名文件
oldname 指定的文件或目录的名称更改为 newname

这是一个直接在文件上执行的操作;该操作不涉及任何流。

如果 oldnamenewname 指定了不同的路径,并且系统支持此操作,文件将被移动到新位置。

如果 newname 指定了一个已存在的文件,函数可能会失败,也可能会覆盖现有文件,具体取决于特定的系统和库实现。

必须具有适当的文件访问权限。

参数

oldname
C 字符串,包含要重命名和/或移动的现有文件的名称。
其值应遵循运行环境的文件名规范,并可以包含路径(如果系统支持)。
newname
C 字符串,包含文件的新名称。
其值应遵循运行环境的文件名规范,并可以包含路径(如果系统支持)。

返回值

如果文件成功重命名,则返回零值。
如果失败,则返回一个非零值。
在大多数库实现中,失败时还会将 errno 变量设置为一个特定于系统的错误代码。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* rename example */
#include <stdio.h>

int main ()
{
  int result;
  char oldname[] ="oldname.txt";
  char newname[] ="newname.txt";
  result= rename( oldname , newname );
  if ( result == 0 )
    puts ( "File successfully renamed" );
  else
    perror( "Error renaming file" );
  return 0;
}

如果文件oldname.txt可以成功重命名为newname.txt以下消息将被写入stdout:
File successfully renamed


否则,类似以下的消息将被写入stderr:
Error renaming file: Permission denied


另见