Как разрешить другим приложениям открывать файл, который мне нужно держать открытым?

У меня есть приложение Windows C ++, которое открывает файл (и держит его открытым) следующим образом:

FILE* fp = NULL;
errno_t result = _wfopen_s(&fp, L"MyRawData.dat", L"wb");

Это работает нормально, но когда я пытаюсь передать этот файл через filezilla, он запрещает доступ к файлу, когда я пытаюсь загрузить его (несмотря на отметку «Разрешить загрузку файлов, которые открыты для записи другим процессом»).

Я что-то не так сделал в своем программном обеспечении или ограничил проблему с Filezilla / General Windows?

0

Решение

От документация упомянутой функции:

Файлы открыты fopen_s а также _wfopen_s не делятся Если вам требуется, чтобы файл был общим, используйте _fsopen, _wfsopen с соответствующей константой режима совместного использования (например, _SH_DENYNO для чтения / записи обмена).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]