C Programming - Input / Output
True, offset in fseek() function can be a negative number. It makes the file pointer to move backwards from the current position.
Declaration: retval = fseek( fp, offset, from );
FILE *fp; = points to the file on which I/O is to be repositioned.
long offset; = is an integer giving the number of bytes to move forward or backward in the file. This may be positive or negative.
int from; = is one of the manifests SEEK_SET, SEEK_CUR, or SEEK_END.
int retval; = is non-zero if the seek operation was invalid (e.g. on a file not opened with a "b" option); otherwise, the return value is zero.
True, we should not be able to read a file after writing in that file without calling the below functions.
int fflush ( FILE * stream ); If the given stream was open for writing and the last i/o operation was an output operation, any unwritten data in the output buffer is written to the file.
int fseek ( FILE * stream, long int offset, int origin ); Its purpose is to change the file position indicator for the specified stream.
void rewind ( FILE * stream ); Sets the position indicator associated with stream to the beginning of the file.