Я занимаюсь программированием на языке программирования C и экспериментировал с функцией rename()
. Я использую следующий код:Выполняет ли функция c rename() удаление файлов?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
if(rename ("data", "database"))
{
fprintf(stderr, "Can't rename file\n");
exit(EXIT_FAILURE);
}
return 0;
}
Этот код изменяет имя файла с именем, «данные» в файл с именем, «база данных». Мне было интересно, что произойдет, если вы попытаетесь запустить этот код, но уже имели файл с именем «база данных» в том же каталоге.
Это содержимое каталога, которые я перед запуском rename()
функции:
И это содержимое каталога, у меня после запуска rename()
функции:
Похоже, что функция rename()
правильно переименовала мой файл, но также удалил файл, который уже был в этом каталоге с тем же именем. Мне было интересно, как именно так работает функция rename()
, или если это то, что делает моя операционная система (Windows 10 - cygwin64 - gcc-компилятор). Кроме того, при использовании этой функции я должен сначала проверить, нет ли файлов, которые уже имеют одно и то же имя, чтобы предотвратить их удаление? Спасибо за помощь и понимание.
Интересно, спасибо. Я должен буду помнить, что многие функции определяются реализацией, и ожидание одинаковых результатов в разных системах может быть не очень хорошей идеей. –