void format()//格式化函数 { int i; FILE* fp; fat = (struct fatitem*)(f + SIZE); //初始化FAT表 fat[0].item = -1; fat[0].em = '1'; for (i = 1; i < ROOT_NO - 1; i++) { fat[i].item = i + 1; fat[i].em = '1'; } fat[ROOT_NO].item = -1; fat[ROOT_NO].em = '1'; for (i = ROOT_NO + 1; i < NUM; i++) { fat[i].item = -1; fat[i].em = '0'; } root = (struct direct*)(f + SIZE + FATSIZE); //初始化目录 root->directitem[0].sign = 1; root->directitem[0].first= ROOT_NO; strcpy(root->directitem[0].name, "."); root->directitem[0].next = root->directitem[0].first; root->directitem[0].property = '1'; root->directitem[0].size = ROOT_SIZE; //指向上一级目录的目录项 root->directitem[1].sign = 1; root->directitem[1].first = ROOT_NO; strcpy(root->directitem[1].name, ".."); root->directitem[1].next = root->directitem[0].first; root->directitem[1].property = '1'; root->directitem[1].size = ROOT_SIZE; if ((fp = fopen("test.txt", "wb")) == NULL) { printf("无法打开文件\n"); return; } for (i = 2; i < MSD + 2; i++) { root->directitem[i].sign = 0; root->directitem[i].first = -1; strcpy(root->directitem[i].name, ""); root->directitem[i].next = -1; root->directitem[i].property = '0'; root->directitem[i].size = 0; } if ((fp = fopen("test.txt", "wb")) == NULL) { printf("无法打开文件\n"); return; } if (fwrite(f, MEM_D_SIZE, 1, fp) != 1) { printf("无法打开文件\n"); } fclose(fp); }这段代码什么意思
时间: 2024-04-21 11:28:43 浏览: 41
文件I/O常用函数总结
这段代码是一个格式化函数,用于初始化文件系统的FAT表和根目录。首先,将FAT表的第一个项设为-1,表示已经被占用,其余项都设置为可以使用,即item为下一个可用的FAT表项的索引,em为'1'表示该项可以使用,'0'表示该项不可用。然后将根目录的第一个目录项设置为'.',表示当前目录,第二个目录项设置为'..',表示上一级目录,其余目录项都设置为空,即没有文件或目录。最后将整个文件系统写入到名为"test.txt"的文件中。
阅读全文