ofstream не создает файл несколько раз
Запускаю программу, которая открывает и закрывает ofstream, файл создается, однако если я его мануально удаляю и запускаю программу снова - файл с тем же названием больше не создаётся, даже после рекомпиляции.
#include <iostream>
#include <fstream>
#include <string>
int main()
{
unsigned userID = 0;
std::string filename = "user_" + std::to_string(userID) + ".txt";
std::ofstream userdata (filename);
if(userdata.is_open())
{
userdata << "Text";
userdata.close();
}
return 0;
}
Компилятор - g++ 7.5.0 IDE не пользуюсь, текстовый редактор - nano.
Ответы (1 шт):
Проблема заключалась в wsl(Windows Subsystem for Linux), которую я использовал для компиляции и запуска кода. Если код запускать и удалять файл в рамках одной оболочки, то проблемы не возникает. Я же запускал код в wsl под ubuntu, а удалял созданный файл средствами Windows, из-за чего в файловой системе linux он оставался, хоть и не был виден(созданные файлы открывались, и могли быть удалены, но не отображались в команде ls и проводнике Windows, после удаления "призрачных" файлов из файловой системы linux, новые одноименные файлы отображаются корректно)