Berkeley DB Reference Guide: Building Berkeley DB for Windows systems
Description: Berkeley DB: An embedded database programmatic toolkit.
Keywords: embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++

### Berkeley DB Reference Guide: Building Berkeley DB for Windows systems |

# Windows notes

Various Berkeley DB interfaces take a mode argument, intended to specify the underlying file permissions for created files. Berkeley DB currently ignores this argument on Windows systems.

It would be possible to construct a set of security attributes to pass to CreateFile that accurately represents the mode. In the worst case, this would involve looking up user and all group names and creating an entry for each. Alternatively, we could call the _chmod (partial emulation) function after file creation, although this leaves us with an obvious race.

Practically speaking, however, these efforts would be largely meaningless on FAT, the most common file system, which only has a "readable" and "writeable" flag, applying to all users.

Windows/95 note:
  On Windows/95, files that are opened by multiple processes do not share data correctly. For this reason, the DB_SYSTEM_MEM flag is implied for any application that does not specify the DB_PRIVATE flag.

Windows/NT note:
  On Windows/NT, each process has its own namespace within the system paging file, and so processes cannot use it to share information. (We are aware that this is not as specified in the Windows/NT documentation. However, we have not been able to get multiple processes to share information in the system paging file. If you know how to do so, please let us know!) For this reason, the DB_SYSTEM_MEM flag is ignored for Windows/NT applications.

Copyright Sleepycat Software