diff --git a/include/uv/win.h b/include/uv/win.h index a88bf29e9..e0de5a6db 100644 --- a/include/uv/win.h +++ b/include/uv/win.h @@ -684,6 +684,7 @@ typedef struct { #define UV_FS_O_TEMPORARY _O_TEMPORARY #define UV_FS_O_TRUNC _O_TRUNC #define UV_FS_O_WRONLY _O_WRONLY +#define UV_FS_O_SHARE_RDONLY 0x40000000 /* READ ONLY SHARING MODE */ /* fs open() flags supported on other platforms (or mapped on this platform): */ #define UV_FS_O_DIRECT 0x02000000 /* FILE_FLAG_NO_BUFFERING */ diff --git a/src/win/fs.c b/src/win/fs.c index cc2e8db94..3fabadaea 100644 --- a/src/win/fs.c +++ b/src/win/fs.c @@ -482,6 +482,8 @@ void fs__open(uv_fs_t* req) { */ if (flags & UV_FS_O_EXLOCK) { share = 0; + } else if (flags & UV_FS_O_SHARE_RDONLY) { + share = FILE_SHARE_READ; } else { share = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE; }