×

Ftell() Function in C

Ftell(): In File Handling we have some special functions like Ftell(), Fseek(), rewind() etc.. while you are randomly accessing the file these functions play very important role and these functions have their specific applications.

In this content we are going to discuss about the ftell() function completely with an examples.

What is ftell() function in c?

As the name suggest it will tell the position of the file pointer with respective to the starting of the file.

The ftell() function returns the current file position of the specified stream of the starting position.

We can use ftell() function to get the total size and length of a file after moving the file pointer at the end of the file. We can use seek_end constant to move the file pointer at the end of the file and seek_set is used to set the value.

Syntax for ftell() function:

long int ftell(FILE *stream)

 Let’s see a simple example, Suppose we have the file like ABCD.txt  and in this file we have printed like JAVATPOINT, for this text we have starting of the file and it would be started like the index 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, because of the 9 letters placed in the 9 indexes.

And now if you open the file in the read mode then the file pointer will be in the starting point. So, the position of the file pointer is 0th.

As shown below.

0123456789
JAVATPOINT

J stares at the 0th index and T stares at the 9th index. Using ftell() function we can find out the position of the file pointer.

If suppose we have moved to this file pointer to a specific position using fseek(), we can do this thing using fseek() we have moved this here to T and after that if you use ftell() then it will return 5. Because the index of the “T” is 5.

From the starting 1,2,..5 five bytes are going to be skipped and the sixth byte the file pointer is right now. And it will tell the starting of the file not at end of the file.

One of the application of the ftell() is generally used to find out the length of the file and how can we find out the length of the file also we will see with the help of the program.

Let’s see a simple code for file handling.

#include<stdio.h>
void main()
{
file *fp = NULL;
char ch;
char str[50];
fp = fopen(“xyz.txt”,”r”);
if(fp == NULL)
{
printf(“Unable to open the file”);
exit(1);
}

This is the simple program for opening and reading the file.

Now let’s see the simple example program on ftell() function:

#include<stdio.h>
#include<conio.h>
Void main()
{
FILE *fp;
int length;
clrscr();
fp = fopen(“file.txt”,”r”);
fseek (fp, 0, SEEK_END);
length = file(fp);
fclose(fp);
printf(“Size of the file: %d bytes”, length);
getch();
}

In this above example we are using two  header files like

#include<stdio.h>
and
#include<conio.h>

And here we are using the fseek() function. we can see the fseek() function parameters and position of the file pointer.

SEEK_END is used to check at the end of the file. And the file is named *fp as file pointer, and the integer length as int length. Fopen() is used to open the file and reading mode of the text.

In the practical approach we are using the code for compilation as follows:

// the program for ftell() function
#include<stdio.h>
#include<conio.h>
Void main()
{
FILE *fp;
Clrscr();
Fp = fopen(“text.txt”,”r”);
Printf(“%d”,ftell(fp));   // After compiling we get the value like 0. 
Fseek(fp,9,SEEK_SET); 
Printf(“%d\n”,ftell(fp));  // After compiling we get the value 9.
Fseek(fp,9,SEEK_CUR); 
Printf(“%d\n”,ftell(fp));  
 Fseek(fp,0,SEEK_END); 
Printf(“%d\n”,ftell(fp));  // After compiling we get the value 9.
Getch();
}//main

Output:

0
9
18
39

The file pointer will open in the read mode. Here we are using the function void main() as without parameter and without return values. The 0 value is the current position of the file initially.  

After printing the statement 9, SEEK_SET then Later we added the 9 to it. Then the file pointer will be moved to the 9.

Using the SEEK_SET we assigned the value and moved to the 9th position.

18 value is assigned in between the start and the end position.

And finally, the 39 value is last position of file.


Related Topics

Assert() Function in C

Assert (): In C, the statements are executed with the exit statement. In C language declare, and it tests the condition parameters. If the statement executed will be false, it...

3 minutes read.

Continue in C

C language: C language is a procedure oriented programming language. We can say that it is a platform dependent language. C language is introduced by Dennis Ritchie in the year 1970. We...

2 minutes read.

Const vs Volatile in C

Introduction Qualifiers are nothing but keywords which are used to modify the properties of a variable. Const and Volatile keywords are qualifiers in C. The Const qualifier is applied to the...

4 minutes read.

Keywords in C

A keyword is a word that has a predetermined meaning. The C compiler knows the purposes of the keywords. The objectives of these keywords cannot be modified. Keywords are the...

9 minutes read.

Banker’s Algorithm in C

Introduction Before doing a "s-state" check to look for potential activities and deciding if allocation should be allowed to continue, the banker's algorithm, a resource allocation and deadlock avoidance algorithm, tests...

5 minutes read.

While-Loop in C

Syntax of While Loop The syntax that has been used for the while loop in C programming language is: while (termination condition) {   // the body of the loop  } Working of While-Loop Initially, we...

3 minutes read.

How to use floor() function in C

Introduction: The floor() used as a function in the C programming language. This function uses to return the largest or most significant integer value. The integer value is smaller than...

3 minutes read.

Long int in C

We use data type to avoid the type of data to be stored for a variable at the time of declaration.So, we can say that the variable type is known...

3 minutes read.

Matrix Multiplication in C

Matrix Multiplication in C Matrix multiplication in C: Two matrices can be added, subtracted, multiplied, and divided. To do so, we take input from the consumer for row number, column number, first element matrix,...

3 minutes read.

Format Specifier in C

Format Specifier in C Format specifiers can be described as an operator that is used to print the data referred by any object or variable in combination with the printf ()...

3 minutes read.

Variables in C

A variable can be defined as a name allocated to a storage space that can be manipulated by our programs. Every variable in C arbitrates about the overall layout and...

5 minutes read.

Types of Pointers in C

Pointers in C A pointer is a variable and this variable contains the address of another variable, i.e it’s a variable which has the address of another variable as its value....

4 minutes read.

Call by Value and Call by Reference in C

Call by reference and call by value are two different ways of passing arguments to a function in C programming language. Call by reference means that the called function is...

4 minutes read.

Difference between C and Java

C programming and Java programming are two of the earliest programming languages. C programming follows a procedural approach whereas Java programming follows an object-oriented approach. Java programming is a part...

3 minutes read.

Pseudo Code in C

Pseudo code in C can be referred to as a simple way or method to write programming code or program algorithm in English. A pseudocode is an informal representation of...

4 minutes read.

Library Functions in C

What are library functions? Library functions are the built-in functions (functions provided by the system) which are stored in the library. The library is the common location where these functions are...

3 minutes read.

Binary Search in C with Best and Worst Time Complexity

What is Binary Search? Binary search is an algorithm that is used to find an element in a sorted array efficiently. It has a time complexity of O(log n). It means...

3 minutes read.

Difference between while and do-while loop in C

Introduction Both 'While' and 'Do-While' loops in C mostly have a similar concept, and the code of both loops runs for mainly similar purposes. Both loops process the program/code in the...

3 minutes read.

Flexible Array Members in a Structure in C

There is flexibility to declare array from c99 generation onwards that declaration of the collections can be made possible without even mentioning its dimension, which means that the displays are...

4 minutes read.

Dynamic memory allocation

Dynamic memory allocation is used to allocate the memory at runtime. It has following function within <stdlib.h> header file. Function Syntax malloc() malloc (number *sizeof(int)); calloc() calloc (number, sizeof(int)); realloc() realloc (pointer_name, number * sizeof(int)); free() free (pointer_name); malloc() function The process...

2 minutes read.