Невозможно удалить файл в c, используя потоки - PullRequest
0 голосов
/ 24 апреля 2020

Я делаю серверную клиентскую систему в C с использованием сокетов, в моей основной программе сервера я создаю несколько потоков, чтобы иметь множественный доступ к серверу. У меня есть файл, где я храню некоторую информацию от пользователей, когда клиент отключается от сервера, и перед закрытием потока я хочу обновить информацию в файле об этом пользователе, используя простой код копирования файла во временный файл, удалив основной файл и переименовав временный файл в имя основного файла. И я выхожу из своей темы.

Проблема: Программа не может удалить основной файл. Но я проверил его на временном файле, и он удаляет.

Я проверил несколько вещей, и я не могу удалить основной файл, он всегда говорит, что не может удалить его.

if (remove("ScoreBoard.txt") == 0)
    printf("Deleted successfully");
else
    printf("Unable to delete the file");

/* Rename temporary file as original file */
rename("replace.txt", "ScoreBoard.txt");

1 Ответ

1 голос
/ 24 апреля 2020

У вас есть файл, открытый в другой теме? В зависимости от вашей платформы это может помешать вам удалить файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...