磁盘I/O在C中如何使用扇区工作?
我在理解Linux和C语言中的磁盘扇区方面遇到了困难。以以下代码为例:
#include
int main() {
FILE *fp = fopen("myfile", "rb+");
char foo;
fread(&foo, sizeof(foo), 1, fp);
}
在这个例子中,如果我的磁盘扇区大小为512字节,当我调用fread()
时,我会从磁盘读取512字节吗?fwrite()
是否也是一样的?
最佳实践是将整个扇区读入内存,进行任何修改,然后将整个扇区写回磁盘。