Задать вопрос
@sitev_ru
sitev.ru - мой блог ...

Открыть одновремено файл из нескольких потоков?

Для работы с файлами использую fopen для открытия файла. Тут вдруг понадобилось одновременно открыть файл нескольким потокам для чтения.

Как открыть файл в таком режиме используя fopen? Или использовать что-то другое?
  • Вопрос задан
  • 685 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@Sumor
Используйте _fsopen. Последний параметр - указываете разрешения для других. Если они не противоречат друг другу, то файлы откроются.

Пример со SO:
#include <stdlib.h>
   #include <stdio.h>
   #include <share.h>
   #include <stdlib.h>

   FILE *FPlogHigh; 

  int main(int argc, char **argv)
  { 
      FPlogHigh = _fsopen("filename".txt", "a+",_SH_DENYWR);
      fprintf(FPlogHigh,"\nHello log started\n");
      fclose(FPlogHigh);
      ...
  }
Ответ написан
Комментировать
AxisPod
@AxisPod
Открываете файл, если нужны разные дескрипторы в потоках, используете функцию dup/dup2/dup3.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы