Próbuję odczytać dane z pliku tekstowego, wyczyścić je, a następnie napisać do niego, w tej kolejności, używając klasy fstream
.Odczytaj z pliku, wyczyść go, napisz do niego
Moje pytanie brzmi: jak wyczyścić plik po przeczytaniu z niego. Wiem, że mogę otworzyć plik i wyczyścić go w tym samym czasie, ale czy jest jakaś funkcja, którą mogę wywołać w strumieniu, aby wyczyścić jej zawartość?
Tak postępuje, nadal istnieje luka między usunięciem a zmianą nazwy. W systemach plików UNIX powinieneś fsync, pomiń usuwanie i po prostu zmień nazwę pliku tymczasowego na pierwszy plik; zostanie atomicznie zastąpiony. W systemie Windows NTFS ma specjalną funkcję ReplaceFile; zamienniki atomowe nie są możliwe do wykonania na innych systemach plików AFAIK. – ephemient