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