Я смущен тем, что ОС фактически «открывает» файл на C, когда вы делаете fopen
в коде. Для разработки, предположим, у меня было 100 двоичных файлов (скажем, размером 1 MB
), который я открываю в CУказатели памяти и файлов
FILE **fptr;
fptr = calloc(100, sizeof(FILE *));
for (ii = 0; ii < 100; ii++)
fptr[ii] = fopen(filename[ii], "rb+");
Предположим, что filename
и ii
были уже определены соответствующим образом.
Будет ли ОС загружать 100 MB
в память, или приведенный выше код просто сообщает программе, что эти файлы готовы к доступу?
'fopen'doesn't не читает весь файл, как вы говорите: сохраняйте эти файлы только для получения доступа –
Это зависит от того, что вы подразумеваете под« готовностью к доступу ». ОС может свободно откручивать жесткий диск, поэтому для считывания данных может потребоваться несколько секунд, так как диск вращается.Единственная гарантия заключается в том, что файл существует, и у вас есть разрешение на его открытие. –