Да, но это очень плохая идея, поскольку fclose
закрывает связанный fd, и поэтому вы можете только fclose
один из них без него, что приведет к close
в дескрипторе файла, который больше не принадлежит FILE
, и, возможно, был переназначен для другого использования. В принципе это происходит даже при завершении процесса, если вы не используете _exit
/ _Exit
или ненормальное завершение.
С этим связан вопрос, можете ли вы использовать разные файловые дескрипторы (каждый из которых создается dup
для одного и того же базового открытого описания файла с более чем одним файлом. Для этого ответ также да, и в то время как это может быть плохой идеей, есть правила, которые POSIX определяет, которые делают его безопасным, если вы будете следовать им:
2.5.1 Взаимодействие файловых дескрипторов и стандартных потоков ввода / вывода