Los descriptores de archivo se comparten entre los subprocesos. Si desea compensaciones "específicas del subproceso", ¿por qué no hacer que cada subproceso use un descriptor de archivo diferente (open(2)
varias veces) ?
No, solo hay una tabla de descriptores de archivo por proceso y se comparte entre todos los subprocesos.
A partir de la descripción de su problema, es posible que desee ver las funciones preread() y pwrite().