The address space within the entry is discontiguous, meaning that there are gaps in the file offsets. This means that you will not be able to lseek() and then read() or write() to arbitrary locations—only the locations that are valid within the address space of that process. This only makes sense, especially when you consider that the process itself has access to only the valid portions of its own address space—you can't construct a pointer to an arbitrary location and expect it to work.