Hi David,

For the bug report, I'll create an issue for 1.8.17 and take a look at the 
flags.

For the file locking on Windows, I'll create a bug report (also for 1.8.17) and 
take a look at that functionality. It might also be useful for the 
single-writer/multiple-readers feature of HDF5 1.10.0.

Thanks for your report! I'll post back on the forum with any changes we'll be 
making but I probably won't get to it until the new year due to the holidays 
and 1.10.0 alpha release coming up.

Cheers,

Dana Robinson
Software Developer
The HDF Group

From: Hdf-forum [mailto:[email protected]] On Behalf Of David
Sent: Thursday, December 10, 2015 3:24 AM
To: HDF Users Discussion List <[email protected]>
Subject: [Hdf-forum] Bug report & file locking for Windows

Bug report:
H5FDsec2.c : line 337 is:
 if((fd = HDopen(name, o_flags, 0666)) < 0)

The 0666 for the file permissions is not valid for MSVC std lib _open() which 
is waht HDopen is defined as. It happens to hit the important bits, but just by 
luck. It should be (_S_IREAD | _S_IWRITE) for MSVC. This could be done in the 
HDopen macro with a 1 line change (assuming sys/stat.h is included already).

File locking on windows:
I wanted files that are open for read-write to deny other writers. To do this I 
replaced the HDopen() line in H5FDsec2.c with this:

#include <share.h>
int sh_flags = ((H5F_ACC_RDWR & flags) || (H5F_ACC_CREAT & flags))  ? 
_SH_DENYWR : _SH_DENYNO;
if((fd = _sopen(name, o_flags|_O_BINARY, sh_flags, _S_IREAD|_S_IWRITE)) < 0) {
[Image removed by sender.]

_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to