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/

10-12 15:02