📄 notes.so
字号:
m4_comment([$Id: notes.so,v 10.32 2006/09/15 18:54:47 bostic Exp $])m4_ref_title(Building m4_db for Windows systems, Windows notes, @Windows notes, build_win/test, build_win/faq)m4_nlistbeginm4_nlist([dnlm4_db does not support the Windows/95 platform.])m4_nlist([dnlm4_db does not support replication on the Windows/98 or Windows/MEplatforms.])m4_nlist([dnlOn Windows/98 and Windows/ME, files opened by multiple processes do notshare data correctly. For this reason, the m4_ref(DB_SYSTEM_MEM) flagis implied for any application not specifying the m4_ref(DB_PRIVATE)flag, causing the system paging file to be used for sharing data.])m4_nlist([dnlOn Windows/98 and Windows/ME, removing or renaming a file using them4_ref(dbenv_dbremove), m4_ref(dbenv_dbrename), m4_ref(dbh_remove) orm4_refT(dbh_rename)s may fail if another thread of control has the fileopen for any reason, including checkpointing or flushing pages from theunderlying shared database environment cache. There is no workaroundfor this problem other than re-attempting the operation after the otherthread of control has closed its m4_db handles.])m4_nlist([dnlOn Windows, system paging file memory is freed on last close. For thisreason, multiple processes sharing a database environment created usingthe m4_ref(DB_SYSTEM_MEM) flag must arrange for at least one process toalways have the environment open, or alternatively that any processjoining the environment be prepared to re-create it.])m4_p([dnlIf a system memory environment is closed by all processes, subsequentattempts to open it will return an error. To successfully open atransactional environment in this state, recovery must be run by thenext process to open the environment. For non-transactionalenvironments, applications should remove the existing environment andthen create a new database environment.])m4_nlist([dnlWhen using the m4_ref(DB_SYSTEM_MEM) flag, m4_db shared regions arecreated without ACLs, which means that the regions are only accessibleto a single user. If wider sharing is appropriate (for example, bothuser applications and Windows/NT service applications need to accessthe m4_db regions), the m4_db code will need to be modified to createthe shared regions with the correct ACLs. Alternatively, by notspecifying the m4_ref(DB_SYSTEM_MEM) flag, filesystem-backed regionswill be created instead, and the permissions on those files may bedirectly specified through the m4_refT(dbenv_open).])m4_nlist([dnlApplications that operate on wide character strings can use theWindows function WideCharToMultiByte with the code page CP_UTF8 toconvert paths to the form expected by m4_db. Internally, m4_db callsMultiByteToWideChar on paths before calling Windows functions.])m4_nlist([dnlVarious m4_db methods take a m4_arg(mode) argument, which is intendedto specify the underlying file permissions for created files. m4_dbcurrently ignores this argument on Windows systems.m4_p([dnlIt would be possible to construct a set of security attributes to pass tom4_arg(CreateFile) that accurately represents the mode. In the worstcase, this would involve looking up user and all group names, and creatingan entry for each. Alternatively, we could call the m4_arg(_chmod)(partial emulation) function after file creation, although this leaves uswith an obvious race.])m4_p([dnlPractically speaking, however, these efforts would be largely meaninglesson a FAT file system, which only has a "readable" and "writable" flag,applying to all users.])])m4_nlistendm4_page_footer
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -