rename ()- 重命名文件

格式

#include <stdio.h>
int rename(const char *oldname, const char *newname);

语言级别

ANSI

线程安全

描述

rename() 函数将 oldname 指定的文件重命名为 newname指定的名称。 oldname 指针必须指定现有文件的名称。 newname 指针不得指定现有文件的名称。 不能使用现有文件的名称重命名文件。 您也无法重命名打开的文件。

可用于满足新名称的文件格式取决于旧名称的格式。 下表显示可用于指定旧文件名的有效文件格式以及新名称的相应有效文件格式。

如果新名称和旧名称的格式都是 lib/file (成员) ,那么文件无法更改。 如果文件名更改,那么重命名将不起作用。 例如,以下组件无效: lib/file1(member1) lib/file2(member1)。

原名称 新名称
lib/file (成员) lib/file (成员) , lib/file , file , file (成员)
lib/file lib/file ,文件
文件 lib/file ,文件
文件 (成员) lib/file (成员) , lib/file , file , file (成员)

返回值

如果成功, rename() 函数将返回 0 。 发生错误时,它将返回非零值。

errno 的值可以设置为 ECONVERT (转换错误)。

示例

此示例采用两个文件名作为输入,并使用 rename() 将文件名从第一个名称更改为第二个名称。
#include <stdio.h>
 
int main(int argc, char ** argv )
{
  if ( argc != 3 )
    printf( "Usage: %s old_fn new_fn\n", argv[0] );
  else if ( rename( argv[1], argv[2] ) != 0 )
    perror ( "Could not rename file" );
}

相关信息