Как создать новый дескриптор файла из существующего файлового дескриптора, чтобы новый дескриптор не разделял одну и ту же внутреннюю файловую структуру/запись в таблице файлов? Специфические атрибуты, такие как смещение файла (и, предпочтительно, разрешения, совместное использование и режимы), не должны совместно использоваться между новыми и старыми файловыми дескрипторами.
Под Windows и Linux dup()
будет дублировать файловый дескриптор, но оба дескриптора по-прежнему указывают на одну и ту же структуру файла в таблице файлов процесса. Любой поиск в любом дескрипторе также изменит положение для других дескрипторов.
Примечание
С тех пор я получил ответы как на Windows, так и на Linux и слишком часто менял вопрос, что затрудняло ответ людям. Я подкорректирую свои голоса и приму самый чистый ответ, который охватывает как Windows, так и Linux. Извиняясь за всех, я все еще новичок в SO-парадигме. Спасибо за отличные ответы!