Given a text file, find its size in bytes.
Examples:
Input : file_name = "a.txt" Let "a.txt" contains "geeks" Output : 6 Bytes There are 5 bytes for 5 characters then an extra byte for end of file. Input : file_name = "a.txt" Let "a.txt" contains "geeks for geeks" Output : 16 Bytes
The idea is to use fseek() in C and ftell in C. Using fseek(), we move file pointer to end, then using ftell(), we find its position which is actually size in bytes.
// C program to find the size of file #include <stdio.h> long int findSize( char file_name[])
{ // opening the file in read mode
FILE * fp = fopen (file_name, "r" );
// checking if the file exist or not
if (fp == NULL) {
printf ( "File Not Found!\n" );
return -1;
}
fseek (fp, 0L, SEEK_END);
// calculating the size of the file
long int res = ftell (fp);
// closing the file
fclose (fp);
return res;
} // Driver code int main()
{ char file_name[] = { "a.txt" };
long int res = findSize(file_name);
if (res != -1)
printf ( "Size of the file is %ld bytes \n" , res);
return 0;
} |