mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-23 07:42:51 +00:00
Allow other programs to open the same files on Windows.
In order to match Linux behaviour better our Windows-specific open() replacement should disable Windows default file locking. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
This commit is contained in:
parent
7c8d477299
commit
ad8173eb81
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#if defined(_WIN32) && !defined(__MINGW32CE__)
|
#if defined(_WIN32) && !defined(__MINGW32CE__)
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#include <share.h>
|
||||||
|
|
||||||
#undef open
|
#undef open
|
||||||
int ff_win32_open(const char *filename_utf8, int oflag, int pmode)
|
int ff_win32_open(const char *filename_utf8, int oflag, int pmode)
|
||||||
@ -44,12 +45,12 @@ int ff_win32_open(const char *filename_utf8, int oflag, int pmode)
|
|||||||
filename_w = av_mallocz(sizeof(wchar_t) * num_chars);
|
filename_w = av_mallocz(sizeof(wchar_t) * num_chars);
|
||||||
MultiByteToWideChar(CP_UTF8, 0, filename_utf8, -1, filename_w, num_chars);
|
MultiByteToWideChar(CP_UTF8, 0, filename_utf8, -1, filename_w, num_chars);
|
||||||
|
|
||||||
fd = _wopen(filename_w, oflag, pmode);
|
fd = _wsopen(filename_w, oflag, SH_DENYNO, pmode);
|
||||||
av_freep(&filename_w);
|
av_freep(&filename_w);
|
||||||
|
|
||||||
/* filename maybe be in CP_ACP */
|
/* filename maybe be in CP_ACP */
|
||||||
if (fd == -1 && !(oflag & O_CREAT))
|
if (fd == -1 && !(oflag & O_CREAT))
|
||||||
return open(filename_utf8, oflag, pmode);
|
return _sopen(filename_utf8, oflag, SH_DENYNO, pmode);
|
||||||
|
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user