Each process has its own file descriptor table, and each time the open() ed file gives a separate file description. So thereβs common sense!
The exception is duplication of the file descriptor either inside the process (via dup() ), or through processes (by one fork() process with a copy with all the same FDs) or by passing the file descriptor through UNIX). When this happens, the two descriptors ultimately share some properties with each other, including the offset.
This is not necessarily a bad thing. This means, for example, that two processes that are simultaneously written to a common file descriptor will not overwrite each other output. However, this can sometimes have unexpected results. But usually this is not something you could learn about without knowing it.
source share