Это зависит от того, где вы получили два файловых дескриптора. Если они приходят из вызова dup (2), то они совместно используют смещение и статус файла, поэтому выполнение write (2) для одного из них повлияет на положение другого. С другой стороны, если они поступают из двух отдельных вызовов open (2), каждый из них будет иметь собственное смещение и статус файла.
Файловый дескриптор - это в основном просто ссылка на файловую структуру ядра, и именно эта структура ядра содержит большую часть состояния. Когда вы открываете (2) файл, вы получаете новую файловую структуру ядра и новый дескриптор файла, который ссылается на него. Когда вы дублируете (2) дескриптор файла (или передаете дескриптор файла через sendmsg), вы получаете новую ссылку на ту же структуру файла ядра.