rename
, _wrename
Переименовывает файл или каталог.
Синтаксис
int rename(
const char *oldname,
const char *newname
);
int _wrename(
const wchar_t *oldname,
const wchar_t *newname
);
Параметры
oldname
Указатель на старое имя.
newname
Указатель на новое имя.
Возвращаемое значение
Каждая из этих функций возвращает значение 0, если это успешно. При возникновении ошибки функция возвращает ненулевое значение и задает для errno
одно из следующих значений:
Значение errno |
Condition |
---|---|
EACCES |
Файл или каталог, newname указанные уже существует или не удалось создать (недопустимый путь), или oldname каталог и newname указывает другой путь. |
ENOENT |
Файл или путь, указанный oldname не найден. |
EINVAL |
Имя содержит недопустимые символы. |
Другие возможные возвращаемые значения см. в разделе _doserrno
, _errno
syserrlist
и _sys_nerr
.
Замечания
Функция rename
переименовывает файл или каталог, oldname
указанный именем, заданным newname
. Старое имя должно быть путем к существующему файлу или каталогу. Новое имя не должно быть путем к существующему файлу или каталогу. Можно использовать rename
для перемещения файла из одного каталога или устройства в другой, предоставив другой путь в аргументе newname
. Однако вы не можете использовать rename
для перемещения каталога. Каталоги можно переименовать, но нельзя перемещать.
_wrename
— это двухбайтовая версия _rename
; аргументы для _wrename
представляют собой двухбайтовые строки. Поведение_wrename
и _rename
идентично в противном случае.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
TCHAR.H рутина |
_UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_trename |
rename |
rename |
_wrename |
Требования
Маршрут | Обязательный заголовок |
---|---|
rename |
<io.h> или <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 );
}
Выходные данные
File 'CRT_RENAMER.OBJ' renamed to 'CRT_RENAMER.JBO'