Random Access of Files in C

You must first complete Data File Handling in C before viewing this Lesson




Random Access

There are two predefined functions  in C language to provide random access in files:

  • fseek()
  • ftell()

1. fseek() 

fseek() function can be  used to take file pointer to a particular position inside a  file.

Syntax: fseek(Pointer, Position, Starting);

Pointer is name of file pointer.

Position is number of characters  to be jumped.

Staring specifies the position from where file pointer should start. There are three values :

0:  Beginning of file.

1:  Current position.

2: End of file 

Program of fseek() function.
#include<stdio.h>
int main()
{
FILE *f1;
char str[80] , s;
int n;

f1=fopen(“data.txt”,”r”);
fgets(str,80,f1); 

printf(“%s”,str);

fseek(f1,2,0);
/*File pointer jumped to 3rd character from beginning*/

s=getc(f);   
printf(“\n%c”,s);

fseek(f1,2,1);
/*File pointer jumped to 3rd character from current
position*/

s=getc(f);
printf(“\n%c”,s);

fseek(f1,0,2);
/*File pointer jumped end of file* /

s=getc(f);
printf(“\n%c”,s);

fclose(f);
return(0);
}

Output
Contents of file are=This is file
i
i




 2. ftell() function

This function provides the current file pointer position.

Syntax:

ftell(Pointer)

Pointer is the name of file pointer variable.

 Program of ftell() function.
#include<stdio.h>
int main()
{
FILE *f;
char str[50];
char ch;
int n;
f=fopen(“data.txt”,”r”);

fgets(str,50,f); 
//To read a string value from a file

printf(“\nContents of file are=”);
printf(“%s”,str);

fseek(f,-1,2);
/*File pointer is placed at the Last character from the
end*/

 

n=ftell(f);  
/*Position of file pointer is stored in variable n.*/

 

printf(“\nFile pointer is at position %d”,n);
fclose(f);
return(0);
} 

Output
Contents of file are=i love india
File pointer is at position 11



Spread the love
Lesson tags: File pointer and random access IN C, fseek() function in C, ftell() function in C, Random Access of Files in C
Back to: C Programming Language
Spread the love