我在理解Linux和C语言的磁盘扇区时遇到了麻烦。以下面的代码为例:
#include <stdio.h>
int main() {
FILE *fp = fopen("myfile", "rb+");
char foo;
fread(&foo, sizeof(foo), 1, fp);
}
在此示例中,如果我的磁盘扇区大小为512字节,当我调用fread()
时是否可以从磁盘读取512字节? fwrite()
是否一样?
最佳做法是将整个扇区读入内存,进行任何修改,然后将整个扇区写回到磁盘吗?