У меня есть многопоточное приложение, которое открывает и читает тот же файл (не пишущий). Я открываю другой дескриптор файла для каждого потока (но они все указывают на тот же файл). Каждый поток затем читает файл и может закрыть его и открыть его снова, если EOF достигнут. Это в порядке? Если я выполняю fclose () на дескрипторе файла, он влияет на другой файл descritptors что точка в тот же файл?
Ничего страшного. Вы можете всегда открывать один и тот же файл, и каждый дескриптор файла не зависит друг от друга.
Это должно работать нормально, при условии, что каждый поток имеет свой собственный дескриптор файла. Поскольку вы упомянули об использовании fclose ()
, это предполагает, что вы также используете fopen ()
в каждом потоке, и каждый поток влияет только на свою собственную переменную FILE *
.
Есть проблема?