Input / Output - Programming

Q1:

If the file 'source.txt' contains a line 'Be my friend' which of the following will be the output of below program?
#include<stdio.h>

int main()
{
    FILE *fs, *ft;
    char c[10];
    fs = fopen('source.txt', 'r');
    c[0] = getc(fs);
    fseek(fs, 0, SEEK_END);
    fseek(fs, -3L, SEEK_CUR);
    fgets(c, 5, fs);
    puts(c);
    return 0;
}

A friend

B frien

C end

D Error in fseek();

ANS:A - friend

The file source.txt contains 'Be my friend'. fseek(fs, 0, SEEK_END); moves the file pointer to the end of the file. fseek(fs, -3L, SEEK_CUR); moves the file pointer backward by 3 characters. fgets(c, 5, fs); read the file from the current position of the file pointer. Hence, it contains the last 3 characters of 'Be my friend'. Therefore, it prints 'end'.