В C, при открытии файла с
FILE *fin;
fin=fopen("file.bin","rb");
у меня есть только указатель на структуру FILE.Где фактическая структура FILE размещена на компьютере с Windows?И содержит ли он всю необходимую информацию для доступа к файлу?
Моя цель - выгрузить весь сегмент данных на диск и затем перезагрузить выгруженный файл обратно в начало сегмента данных.Код, который перезагружает выгруженный файл, помещается в отдельную функцию.Таким образом, указатель fin
является локальным и находится в стеке, поэтому не перезаписывается при перезагрузке.Но сама структура FILE
не является локальной.Я стараюсь не перезаписывать область памяти размером sizeof(FILE)
, которая начинается с адреса fin
.
Операции
fread(DataSegStart,1,szTillFin,fin);
fread(dummy,1,sizeof(FILE),fin);
fread(DataSegAfterFin,1,szFinTillEnd,fin);
завершаются успешно, но я получаю ошибку подтверждения
fclose(fin)
Перезаписать ли я другие необходимые данные файла, кроме структуры FILE?