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

Пользователь

от rudolph_senger , в категории: C/C++ , 7 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от quinton.prosacco , 7 месяцев назад

@rudolph_senger 

Для определения размера файла в языке программирования C можно использовать функцию fseek() и ftell().


Первым шагом нужно открыть файл с помощью функции fopen(). Затем можно переместить указатель текущей позиции в конец файла с помощью функции fseek() и параметра SEEK_END. После этого можно получить текущую позицию указателя с помощью функции ftell(), которая возвращает количество байтов между началом файла и текущей позицией указателя.


Пример кода, который определяет размер файла:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>

int main() {
   FILE *fp;
   long size;

   fp = fopen("file.txt", "rb"); // открытие файла в бинарном режиме чтения

   if(fp == NULL) {
      printf("Ошибка при открытии файла.
");
      return -1;   
   }

   fseek(fp, 0L, SEEK_END); // перемещение указателя в конец файла
   size = ftell(fp); // получение текущей позиции указателя (размер файла)

   fclose(fp); // закрытие файла

   printf("Размер файла: %ld байт
", size);

   return 0;
}


В этом примере программа открывает файл "file.txt" в бинарном режиме чтения, перемещает указатель текущей позиции в конец файла, получает текущую позицию указателя (размер файла) и закрывает файл. Затем она выводит размер файла в байтах на экран.