in UNIX systems every file has an INode (Index Node) , which is a block on the hard disk that points to all the blocks the file is stored on. every UNIX process has a file descriptor table. a file descriptor points to a global file pointer table, which contains file pointers that point to the in-core inode table, which is a table of inodes stored in memory.
every open() operation creats a file pointer
different file descriptors can point at the same file pointer (due to fork, for example)
|