You can expect any system running ANSI C to support streams, but non-GNU systems may not support file descriptors at all, or may only implement a subset of the GNU functions that operate on file descriptors. File Position One of the attributes of an open file is its file position that keeps track of where in the file the next character is to be read or written. In the GNU system, the file position is simply an integer representing the number of bytes from the beginning of the file. The file position is normally set to the beginning of the file when it is opened, and each time a character is read or written, the file position is incremented. In other words, access to the file is normally sequential .
Ordinary files permit read or write operations at any position within the file.
Some other kinds of files may also permit this. Files which do permit this are sometimes referred to as random-access files. If you try to change the file position on a file that doesn't support random access, you get an error. But, the file position is still used to control where in the file reading is done. If you think about it, you'll realize that several programs can read a given file at the same time.