static int fd;
int make_disk(char *name){
int cnt;
char buf[BLOCK_SIZE];
fd = open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);
memset(buf, 0, (BLOCK_SIZE * DISK_BLOCKS));
for(cnt = 0; cnt < BLOCK_SIZE; ++cnt){
write(fd, buf, DISK_BLOCKS);
}
close(fd);
return 0;
}
这是我的代码,我不知道为什么memset函数在这里不起作用。
最佳答案
这是我的代码,我不知道为什么memset函数在这里不起作用。
您有一个BLOCK_SIZE
个字节的数组,并且您试图将该数组中的所有BLOCK_SIZE*DISK_BLOCKS
个字节设置为0。我假设DISK_BLOCKS
大于1,所以memset
到达数组的末尾,然后继续前进,因为您告诉过。
关于c - 如何将虚拟磁盘的内存设置为0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58995811/