Находятся ли они в одном файле или в другом, это на самом деле красная сельдь.Если вы работаете в Unix-подобной ОС, когда open () - это прямой системный вызов, ответ будет абсолютно положительным.Различные потоки могут открывать файлы (или даже один и тот же файл) одновременно, как это могут делать разные процессы.
Если вы работаете в системе, которая эмулирует open () в user-пространство, вероятный источник не-потоковой безопасности - это таблица дескрипторов файлов, которая отображает дескриптор файла, возвращаемый ОС, в дескриптор файла с небольшим целым числом, который возвращает вызов open (), подобный Unix.Как отметил другой автор, POSIX требует, чтобы open () была поточно-ориентированной, и поскольку open () обычно реализуется для обеспечения совместимости с POSIX, это будет безопасно.
Возможно, что очень старый и скрипучийБиблиотека C может предоставлять не поточно-безопасный open (), но вряд ли вы столкнетесь с этим.Особенно, если вы используете потоки POSIX.