#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static void rev_file(char *, unsigned int);
int main(int argc, char **argv)
{
char *ptr;
unsigned int size, count = 0;
FILE *fp;
if(argc < 2)
{
printf("%s <file>n", argv[0]);
return EXIT_FAILURE;
}
if(!(fp = fopen(argv[1], "r")))
return EXIT_FAILURE;
fseek( fp, 0L, SEEK_END );
count = ftell( fp ); rewind(fp);
if(!(ptr = malloc(count+1)))
return EXIT_FAILURE;
ptr[count] = '';fread(ptr, count, sizeof(char), fp);
fclose(fp); reverse_file(ptr, count);
return EXIT_SUCCESS;
}
static void rev_file(char *base, unsigned int size)
{
char *end = &base[size-1];
if(*end == 'n')
{
*end = '';
--end;
}
for( ; end >= base; --end)
if(*end == 'n')
{
*end = '';printf("%sn", end+1);
}
printf("%sn", base);
free(base);
}
with regards,
P.Nirmal