我试图在Linux上读取FAT32文件系统的部分内容。我很难读取应该位于偏移28处(0x1C)且大小应该为4字节的隐藏扇区数。可以找到这个的参考
here
和
there
已使用
gparted
. 当我检查文件系统时
wxHexEditor
OFFSET: 28 29 30 31
VALUE: 00 18 44 10
现在我试图用以下命令读取文件系统文件:
std::ifstream deviceFile;
char* buffer = new char [4];
deviceFile.seekg(0, std::ios::beg);
deviceFile.ignore(28);
deviceFile.read(buffer, 4);
根据这个
wikipedia page the design of FAT32
int totalNumSectors = (buffer[3] << 24) | (buffer[2] << 16) | (buffer[1] << 8) | (buffer[0]);
但这给了我一个1590288的荒谬值。
我做错什么了?