Как разрешить другим программам читать файл при записи в него с помощью fopen и fwrite? - PullRequest
0 голосов
/ 14 апреля 2020

Я открываю файл для видео, которое я создаю и записываю на диск с помощью fopen в C ++, я могу записать на диск. Но когда я пытаюсь прочитать его во время записи, он выдаст ошибки, говорящие о том, что у него нет разрешения на чтение файла, как только я закрываю файл или останавливаю программу, я могу внезапно прочитать его.

Не проблема, если вы не закончите писать запись, как если бы я создал sh программу, но все же могу ее прочитать. Кроме того, журналы VL C говорят мне, что это проблема с правами доступа.

Есть идеи, как изменить это разрешение?

Ответ Уильяму, запрашивающему фрагменты кода или если открытие произошло перед файлом существовало:

Thanks William, here's what I've got. I waited a few minutes and could see the file with windows explorer by that point and waited until after I'd flushed and data was there, couldn't open with VLC or Notepad++ or Notepad or Windows Media Player

Notepad says cannot access because it is being used by another process, others too.
Here is the VLC log while it tries to open this:
http://snippi.com/s/g4cbu23

Here is where I create the file with fopen:
http://snippi.com/s/cyajw4h

At the very end is where I write to the file using fwrite and flush:
http://snippi.com/s/oz27m0g

1 Ответ

1 голос
/ 14 апреля 2020

Вам нужно использовать _fsopen с _SH_DENYNO, если вы хотите, чтобы файл был доступен для совместного использования.

...