rename、_wrename
重命名或移动目录。
int rename(
const char *oldname,
const char *newname
);
int _wrename(
const wchar_t *oldname,
const wchar_t *newname
);
参数
oldname
对旧名称上。newname
为新的名称上。
返回值
如果成功,这些函数中的每个表达式都返回 0。 在错误,则函数将返回非零值并将 errno 设置为以下值之一:
EACCES
newname 指定的文件或目录已存在或无法创建 (无效的路径);或者 oldname 是目录,并 newname 指定一个路径。ENOENT
oldname 或路径指定的文件未找到。EINVAL
包含无效字符。
有关其他可能返回值的,请参见 _doserrno、_errno、syserrlist 和_sys_nerr。
备注
重命名 函数使 oldname 或目录。名称指定的文件添加到 newname给定的名称。 旧名称必须是现有文件或目录的路径。 新名称不能与现有文件或目录的名称。 可以使用 重命名 将文件从一个目录或设备到另一个 newname 通过指定参数的其他路径。 但是,不能使用 重命名 移动目录。 可以重命名目录,但不会移动。
_wrename 是 的宽字符版本;_wrename 的指针参数是宽字符串。 除此以外,_wrename 和 的行为完全相同。
一般文本例程映射
TCHAR.H 例程 |
未定义的 _UNICODE& 和 _MBCS |
已定义 _MBCS |
已定义 _UNICODE |
---|---|---|---|
_trename |
重命名 |
重命名 |
_wrename |
要求
例程 |
必需的标头 |
---|---|
重命名 |
<io.h> or <stdio.h> |
_wrename |
<stdio.h> 或 <wchar.h> |
有关其他兼容性信息,请参见“简介”中的兼容性。
库
C 运行时库的所有版本。
示例
// crt_renamer.c
/* This program attempts to rename a file named
* CRT_RENAMER.OBJ to CRT_RENAMER.JBO. For this operation
* to succeed, a file named CRT_RENAMER.OBJ must exist and
* a file named CRT_RENAMER.JBO must not exist.
*/
#include <stdio.h>
int main( void )
{
int result;
char old[] = "CRT_RENAMER.OBJ", new[] = "CRT_RENAMER.JBO";
/* Attempt to rename file: */
result = rename( old, new );
if( result != 0 )
printf( "Could not rename '%s'\n", old );
else
printf( "File '%s' renamed to '%s'\n", old, new );
}
Output
File 'CRT_RENAMER.OBJ' renamed to 'CRT_RENAMER.JBO'