×

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

Dos.h Header File in C Language

Dos.h is a header file in C. Interrupt handling, sound generation, date and time functions, and other tasks can be performed using the functions in this library. This is exclusive to...

4 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.

Distance Vector Routing Protocol Program in c

A distance-vector routing protocol is one of the foremost instructions of routing protocols in pc conversation principle for packet-switched networks. The hyperlink-nation protocol is the alternative foremost class.The Bellman-Ford set...

4 minutes read.

Built-in functions in C

The function is a set of instructions and statements enclosed in the "{}" delimiter. In c, there are two types of functions. Pre-define functions/ Built-in functionsUser define function. Built-in functions in C:- These...

8 minutes read.

C/C++ Program to Find the Size of int, float, double and char

In this tutorial, we will learn how to use the sizeof operator to determine the size of each variable. Program to Determine Variable Size Write a C or C++ program to determine the...

2 minutes read.

Nested Structure in C

In C language, we can create nested Structure (Structure within Structure). There are two ways to define a nested structure. By separate structure By Embedded structure   Separate structure In a separate...

1 minute read.

OpenGL in C

OpenGL stands for Open Graphics Library. It is a low-level, widely supported modeling and rendering software package that is widely available across all the platforms. It is an API used...

4 minutes read.

Java Array vs ArrayList

As we all know, arrays are linear data structures that allow you to add elements to them continuously in memory address space, whereas ArrayList is a Collection framework class. Despite...

4 minutes read.

For Loop in C

The Syntax of For Loop for (initialization statement; test expression; update statement) {     /* main body of the FOR loop */ } How does For loop work? In for loop, the initialization command is...

3 minutes read.

Selection sort in C

In the C standard, the selection sorting technique exists where the smallest among the unsorted elements of the array is selected at each time and is then inserted into its...

3 minutes read.

Array to function in C

Array to function in C We can create functions that receive an array as an argument. To pass an array into a function, we need to write the name of the...

4 minutes read.

Segmentation Fault in C

Segmentation Fault in C In the C programming language, segmentation fault or segmentation violation or core dump is a condition that the hardware component raises to protect the memory by indicating...

4 minutes read.

Limitations of Synchronisation and Uses of Static Synchronisation in Multithreading

The multithreading component of java is the element around which the idea rotates as it permits simultaneous execution of at least two program pieces for the most significant usage of...

9 minutes read.

File Handling in C

File Handling is used to open, read, write, search and close file.  C files I/O functions handles data on secondary storage device. File handling function: There are varioushandling functions in C. Function Operation fopen() It is...

4 minutes read.

While Loop in C programming examples

Introduction There is always a header file containing all the essential data regarding inputs and outputs of various functions in the C programs. The following statement describes how to use/add header file...

22 minutes read.

Ceil and Floor in C

In arithmetic, a rational number is a number that can be expressed as the quotient p/q of two integers. Where q is zero. The set of rational numbers includes all...

6 minutes read.

Type Casting in C

Type casting is a way to convert a variable from one data type to another data type.Syntax: (type) expression;     Example: #include <stdio.h> int main() { int a,b; float sum; printf("Example of Type Casting\n"); printf("Enter any integer nos:"); scanf("%d",&a,&b); sum=a+b; printf("Sum: %f",sum); return 0; } Output Example...

1 minute read.

Difference between Array and List in C

C# Array vs List is where the abstraction and implementation of human computing meet.  Arrays are incredibly related to the hardware concept of contiguous and contiguous memory, where each part is...

3 minutes read.

Pyramid Pattern in C

Pyramid Pattern in C A pyramid is a polyhedron created by connecting a base that will be a polygon, and all the lateral faces are triangles. All the bases are connected...

5 minutes read.

Find a subarray with a given sum.

Find a subarray with a given sum. The simple solution is to recognize all subarrays one by one and to check each subarray's sum. The quick solution follows the following program. Algorithm: From...

4 minutes read.