usuń / skróć plik w C, gdy jest już otwarty w trybie „r +”
Mój kod wygląda obecnie mniej więcej tak (kroki te zostały podzielone na wiele funkcji):
/* open file */
FILE *file = fopen(filename, "r+");
if(!file) {
/* read the file */
/* modify the data */
/* truncate file (how does this work?)*/
/* write new data into file */
/* close file */
fclose(file);
}
Wiem, że mogę otworzyć plik za pomocą"w"
tryb, ale nie chcę tego robić w tym przypadku. Wiem, że jest funkcjaftruncate
wunistd.h
/sys/types.h
, ale nie chcę korzystać z tych funkcji mój kod powinien być bardzo przenośny (także w systemie Windows).
Czy istnieje możliwość wyczyszczenia pliku bez zamykania / ponownego otwierania?