POSIX 2008提供了一系列具有* at()前缀的函数,如 openat()
,它对相对于给定目录描述符的文件进行操作 . 这些函数在多线程环境中看起来很实用,因为如果某个线程调用 chdir()
或 fchdir()
,它们可以避免潜在的竞争 . 正如我所看到的那样,使用Nt API(如 NtCreateFile()
)可以实现相同的目标,如果 OBJECT_ATTRIBUTES
结构具有 RootDirectory
成员集 . 我想做的是 NtCreateFile()
Nt处理并将其转换为Win32句柄,因为我的很多API依赖于Win32句柄(例如我理解 ReadFile()
只能在Win32句柄上工作) . 可能吗?或者我应该重写整个API以使用Nt函数(例如 NtReadFile()
, NtWriteFile()
等)?