crewind

What exactly does rewind() do?


I came across the rewind() function in C. I went through its description and example from here.

The description mentioned the following about the function:

The C library function void rewind(FILE *stream) sets the file position to the beginning of the file of the given stream.

I really didn't get the idea clear yet. Can we imagine it as a cursor moving in the file to be read, and rewind() simply sets that cursor to the beginning of the file?


Solution

  • From the man page:

    The rewind() function sets the file position indicator for the stream pointed to by stream to the beginning of the file. It is equivalent to:

          (void)fseek(stream, 0L, SEEK_SET)
    

    except that the error indicator for the stream is also cleared (see clearerr(3)).

    So the next time you read from a file after calling rewind, you start reading from the beginning. So your cursor analogy is a valid one.