HI I am trying to go through large file handling using C. I have a text file called test size is more than 6 GB. Following is my code :

Code:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>

#define _FILE_OFFSET_BITS 64

int main(void)
{
	FILE *fptr;
	off64_t ftell_output;
	int count = 0;
	off64_t fseek_offset = 2147483634;	
	
	fptr = fopen64("/PARIMAL/test","r");
	if(fptr == NULL)
	{
		perror("fptr is null");
	}
	
	while (count == 0)
	{
        	if ((ftell_output = ftello64(fptr)) < 0)
		{
			perror("ftell failed");
		}
		printf("value of ftell_output is %lld\n",ftell_output);
		if(fseeko64(fptr ,fseek_offset++,SEEK_SET) < 0)
		{	
			perror("error feesk");
			exit(2);
		}
	}

	return 0;
}
the output is :
value of ftell_output is 2147483634
value of ftell_output is 2147483635
value of ftell_output is 2147483636
value of ftell_output is 2147483637
value of ftell_output is 2147483638
value of ftell_output is 2147483639
value of ftell_output is 2147483640
value of ftell_output is 2147483641
value of ftell_output is 2147483642
value of ftell_output is 2147483643
value of ftell_output is 2147483644
value of ftell_output is 2147483645
value of ftell_output is 2147483646
value of ftell_output is 2147483647
ftell failed: Error 0
value of ftell_output is -2147483648
ftell failed: Error 0
value of ftell_output is -2147483647
ftell failed: Error 0
value of ftell_output is -2147483646
ftell failed: Error 0
value of ftell_output is -2147483645
ftell failed: Error 0
value of ftell_output is -2147483644
ftell failed: Error 0
value of ftell_output is -2147483643
ftell failed: Error 0
value of ftell_output is -2147483642
ftell failed: Error 0
value of ftell_output is -2147483641
ftell failed: Error 0
value of ftell_output is -2147483640
ftell failed: Error 0

Why does the return of ftell go negative ??

for compilation am using following command :
cc -o program -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE file.c

Please help.