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

Kak Najti Razmer Fajla V Programmirovanii Na C



Вы новичок в программировании на C и ищете способ узнать размер файла? Идти больше некуда! В этом руководстве вы узнаете, как определить размер файла в программировании на C. Количество байтов, используемых для хранения данных внутри файла, называется размером файла. Зная размер файла, вы можете выполнять различные операции с файлами, включая копирование, чтение или запись.

С помощью пошаговых инструкций, упомянутых в этом руководстве, и простых примеров кода вы сможете быстро определить размер любого файла.







Найти размер файла в программировании на C

Существуют различные способы узнать размер файла в C, упомянутые ниже.



1: Использование функции stat()

В C самый простой способ узнать размер файла — использовать статистика() функция системного вызова. статистика() Функция извлекает информацию о состоянии файла и сохраняет ее в структуре. Одним из членов этой структуры является st_size , что дает размер файла в байтах. Этот метод позволяет избежать ручного перемещения указателя файла, что делает его более простым в использовании и менее подверженным ошибкам.



#include
#include

внутренний основной ( )
{
структура статистика ул;
длинный размер ;
если ( статистика ( 'C_Файл.txt' , & ул. ) == 0 )
{
размер = ст.ст_размер;
printf ( 'Размер файла составляет %ld байт. \n ' , размер ) ;
}
возвращаться 0 ;
}


Этот код извлекает размер файла с именем C_File.txt используя статистика() метод из библиотека. st_size элемент структуры stat, в котором функция хранит информацию о файле и позволяет узнать размер файла. Размер файла сохраняется в переменной size, а затем printf() используется для вывода размера на консоль вместе с сообщением. Перед попыткой доступа к st_size свойство, оператор if проверяет, что статистика() вызов функции прошел успешно. Затем код возвращает 0, чтобы показать, что он успешно выполнен.





Выход


2: Использование функции fstat()

Еще одна функция, похожая на статистика() это Фстат() функция, эквивалентная статистика() но работает с открытым файлом, а не с именем файла. Фстат() функция получает информацию об открытом файле, описанном файловый дескриптор перешел к нему. Ссылка на открытый файл представлена ​​целым числом файловый дескриптор . Аналогично статистика(), Фстат() возвращает информацию о состоянии предоставленного файла, включая его размер в байтах.



#include
#include
#include

внутренний основной ( ) {
внутр.дд;
структура статистика ул;
фд = открыть ( 'C_Файл.txt' , O_RDONLY ) ;
если ( состояние ( фд, & ул. ) == - 1 ) {
printf ( 'Ошибка получения информации о файле. \n ' ) ;
возвращаться 1 ;
}
printf ( 'Размер файла составляет %ld байт. \n ' , ст.ст_размер ) ;
закрывать ( фд ) ;
возвращаться 0 ;
}


В приведенном выше коде файл изначально открывается в этом примере вызовом метода открыть() функция с именем файла и O_RDONLY опция, которая открывает файл в режиме только для чтения. А файловый дескриптор (fd) возвращается функцией. После этого используем Фстат() способ получения информации о файле, отправляя ее в виде указателя на ул. структура в качестве второго параметра и дескриптор файла в качестве первого аргумента. ул. структура — это место, где эта функция хранит информацию о файле после его извлечения.

Размер файла в байтах, который хранится в st_size член ул. структура, затем печатается, если не было ошибок при использовании Фстат() функция. В противном случае он печатает сообщение об ошибке.

Выход


3: Использование функций fseek() и ftell()

Еще один способ узнать размер файла в программировании на C — это использовать fseek() и ftell() функции. ftell() метод возвращает текущую позицию указателя файла, тогда как функция fseek() перемещает указатель файла в заданное место в файле. Размер файла в байтах можно узнать с помощью ftell() функция для получения текущей позиции после использования fseek() Функция для перемещения указателя файла в конец файла.

#include
#include

внутренний основной ( )
{
ФАЙЛ * фп;
длинный размер ;

фп = фопен ( 'C_Файл.txt' , 'рб' ) ;
fseek ( fp, 0L, SEEK_END ) ;
размер = фтел ( фп ) ;
закрыть ( фп ) ;
printf ( 'Размер файла = %ld байт. \n ' , размер ) ;

возвращаться 0 ;
}


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

Выход


4: Использование функции filelength()

Следующий метод заключается в использовании библиотеки управления файлами, которая предоставляет множество функций для работы с файлами, в том числе функции для получения размер файла . Например, функция длина файла() возвращает длину файла в байтах, учитывая его имя файла. Для этой функции требуется заголовочный файл .

Есть еще одна функция, _filelengthi64(), который возвращает длину файла в байтах для файлов размером более 4 ГБ. Разница между двумя функциями заключается в типе их возвращаемых значений, которые показывают, сколько байтов может обработать функция.

#include
#include

внутренний основной ( )
{
длинный размер ;
уголь * имя = 'C_Файл.txt' ;
размер = длина файла ( файлно ( fopen ( имя, 'рб' ) ) ) ;
printf ( 'Размер файла = %ld байт. \n ' , размер ) ;

возвращаться 0 ;
}


Размер файла C_File.txt в байтах получается этим кодом с помощью библиотеки управления файлами Windows. Когда предоставляется файловый дескриптор открытого файла, метод длина файла() возвращает длину файла в байтах.

fopen() открывает файл в двоичном режиме только для чтения в этом коде, и номер_файла() возвращает файловый дескриптор открытого файла. Затем, printf() используется для печати размера файла. Затем функция возвращает 0, что указывает на успешное выполнение.

Выход


Заключение

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