Threads and file descriptors
The file descriptors are shared between the threads. If you want "thread specific" offsets, why not have each thread use a different file descriptor (open(2)
multiple times) ?
No, there is only one file descriptor table per process, and it's shared among all the threads.
From your problem description, you might want to look into the pread() and pwrite() functions.