Страницы

Поиск по вопросам

вторник, 15 января 2019 г.

Как определить размер файла в программе на C?

Нужно выделить память, равную размеру файла в байтах, под массив байтов и затем считать файл в этот массив.


Ответ

Нужно использовать функцию fstat. #include #include #include #include #include #include #include
int main() { void *buffer = NULL;
int descriptor = open("filename", O_RDONLY);
if (descriptor != -1) { FILE *file = fdopen(descriptor, "rb");
if (file) { struct stat statistics;
if (fstat(descriptor, &statistics) != -1) { buffer = (char*)malloc(statistics.st_size); } fclose(file); } close(descriptor); }
if (!buffer) { free(buffer); }
return 0; }

Комментариев нет:

Отправить комментарий