在过去的几天里,我一直在努力理解一段代码片段。你可以在这里找到要点
概述
代码读取 Windows 驱动器的 MFT,在 MFT 中创建文件映射结构。然后它继续读取 USN 日志以检测这些文件发生了什么变化。
问题
脚本中发生了一些逻辑操作。我可以理解代码部分在做什么,但为什么这样做是过去几天一直困扰我的问题。我偶然发现了各种类似这样的Windows 文档,但即便如此,它对我来说也没有多大意义。
例如 -
switch mode & (O_RDONLY | O_WRONLY | O_RDWR) {
case O_RDONLY:
access = GENERIC_READ
case O_WRONLY:
access = GENERIC_WRITE
case O_RDWR:
access = GENERIC_READ | GENERIC_WRITE
}
if mode&O_CREAT != 0 {
access |= GENERIC_WRITE
}
if mode&O_APPEND != 0 {
access &^= GENERIC_WRITE
access |= FILE_APPEND_DATA
}
我们为什么要做这些逻辑操作?代码中还有此类部分的其他实例。如果有人能指出方向或帮助我完成这些操作,那将非常有帮助。谢谢
相关分类