Переименовать файл
#include <stdio.h>
int rename( const char *old,
const char *new );
- old
- Путь к файлу, который требуется переименовать. Если путь не включает каталог, rename() ищет файл в текущем рабочем каталоге.
- new
- Новое имя файла. Если путь не включает каталог, rename() создает файл в текущем рабочем каталоге.
libc
Функция rename() изменяет имя файла old на заданное имя new.
Если имя new занято уже существующим файлом или пустым каталогом, rename() перезаписывает его.
- 0
- Успешное завершение.
- -1
- Возникла ошибка. Код ошибки записан в errno.
- EACCESS
- У вызывающей программы нет разрешения на поиск одного из компонентов префикса пути или один из каталогов, содержащих old и new запрещает запись .
- EBUSY
- Директория, называнная old или new не может быть переименована, поскольку ее использует другой процесс.
- EEXIST
- Файл new является директорией, содержащей файлы.
- EINVAL
- Путь к директории new directory содержит директорию old.
- EISDIR
- Файл new является директорией, а old является файлом.
- ELOOP
- Слишком много уровней символических ссылок.
- EMLINK
- Файл old является директорией, а количество ссылок родительского каталога new превысит
LINK_MAX
. - ENAMETOOLONG
- Длина строки у old или new превышает
PATH_MAX
. - ENOENT
- Файл old не существует, или old или new являются пустыми строками.
- ENOSPC
- Каталог, который будет содержать new, не может быть расширен.
- ENOSYS
- Функция rename() не реализована для файловой системы, указанной в old или new.
- ENOTDIR
- Компонент префикса пути не является каталогом, или old является каталогом, а new - нет.
- ENOTEMPTY
- Файл, указанный в new, представляет собой каталог, содержащий файлы.
- EROFS
- rename() повлияет на файлы в файловой системе, доступной только для чтения.
- EXDEV
- Файлы или каталоги, названные old и new, находятся в разных файловых системах.
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
if ( rename( "old.dat", "new.dat" ) )
{
puts( "Error renaming old.dat to new.dat." );
return (EXIT_FAILURE);
}
return (EXIT_SUCCESS);
}
ANSI, POSIX 1003.1
- Да
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Да
- В потоке
- Да
errno
Предыдущий раздел: Описание API системной библиотеки