Последние несколько дней я пытался разобраться в фрагменте кода.Вы можете найти суть здесь
Обзор
Код читает MFT диска Windows, создает структуру карт файлов в MFT,Затем он продолжает читать журнал USN, чтобы определить, что изменилось в этих файлах.
Проблема
В сценарии происходят некоторые логические операции.Я могу понять, что делает часть кода, но почему она это делает, это то, что преследует меня последние пару дней.Я наткнулся на различные документы по Windows, такие как this , но даже тогда это не имело большого смысла для меня.
Например -
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
}
Почему мы выполняем эти логические операции?Есть и другие примеры таких частей в коде.Если кто-то может указать мне направление или помочь мне, почему эти операции выполняются, это было бы очень полезно.Спасибо