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.
Заметки
Функция rename переименовывает файл или каталог, указанный oldname, к имени, заданному newname. Старое имя должно быть путем к существующему файлу или каталогу. Новое имя не должно быть именем существующего файла или каталога. Можно использовать rename для перемещения файла из одного каталога или устройства в другое, указав другой путь в аргументе newname. Однако нельзя использовать rename для перемещения каталога. Каталоги можно переименовывать, но не перемещать.
_wrename — это двухбайтовая версия _rename; аргументы для _wrename представляют собой двухбайтовые строки. В противном случае поведение _wrename и _rename идентично.
Универсальное текстовое сопоставление функций
Подпрограмма TCHAR.H |
_UNICODE & _MBCS не определены |
_MBCS определено |
_UNICODE определено |
---|---|---|---|
_trename |
переименовать |
переименовать |
_wrename |
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
переименовать |
<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 );
}
Output
File 'CRT_RENAMER.OBJ' renamed to 'CRT_RENAMER.JBO'