//指向当前目录的目录项 cur_mkdir->directItem[0].sign = 0; cur_mkdir->directItem[0].firstDisk = curDir->directItem[i].firstDisk; strcpy(cur_mkdir->directItem[0].fileName, "."); cur_mkdir->directItem[0].next = cur_mkdir->directItem[0].firstDisk; cur_mkdir->directItem[0].type = 1; cur_mkdir->directItem[0].size = USER_ROOT_SIZE;
时间: 2024-04-23 15:22:38 浏览: 12
这段代码是在创建一个新目录时,设置该目录的 "." 目录项的信息。具体来说,它做了以下几件事情:
1. 将新目录的第一个目录项(即 "." 目录项)的 sign 值置为 0,表示该目录项已经被占用。
2. 将新目录的第一个目录项(即 "." 目录项)的 firstDisk 值设置为该目录的起始磁盘号。
3. 将新目录的第一个目录项(即 "." 目录项)的 fileName 值设置为 ".",表示该目录是自身的父目录。
4. 将新目录的第一个目录项(即 "." 目录项)的 next 值设置为该目录的起始磁盘号。
5. 将新目录的第一个目录项(即 "." 目录项)的 type 值设置为 1,表示该目录项是一个目录。
6. 将新目录的第一个目录项(即 "." 目录项)的 size 值设置为 USER_ROOT_SIZE,表示该目录的大小为 USER_ROOT_SIZE 个字节。
这样就完成了新目录的初始化工作,并且设置了该目录的 "." 目录项的信息。
相关问题
cur_mkdir->directItem[0].sign=0; cur_mkdir->directItem[0].firstDisk=cur_dir->directItem[i].firstDisk; strcpy(cur_mkdir->directItem[0].name,"."); cur_mkdir->directItem[0].next=cur_mkdir->directitem[0].firstDisk; cur_mkdir->directItem[0].type=1; cur_mkdir->directItem[0].size=ROOT_lihao_SIZE;
这段代码看起来是在对一个目录项进行赋值操作。具体来说,代码中的 `cur_mkdir` 指向一个目录项结构体,通过对该结构体中的 `directItem` 数组进行操作,可以设置该目录项下的文件或子目录。下面是代码的解释:
- `cur_mkdir->directItem[0].sign=0;`:将该目录项的标志位 `sign` 设为 0,表示该目录项当前没有被使用。
- `cur_mkdir->directItem[0].firstDisk=cur_dir->directItem[i].firstDisk;`:将该目录项的 `firstDisk` 字段设为指向当前目录项第 `i` 个文件(或子目录)在磁盘上的起始位置。
- `strcpy(cur_mkdir->directItem[0].name,".");`:将该目录项的 `name` 字段设为字符串 `"."`,表示该目录项对应的是当前目录。
- `cur_mkdir->directItem[0].next=cur_mkdir->directitem[0].firstDisk;`:将该目录项的 `next` 字段设为指向该目录项所在磁盘块的位置,即指向该目录项的第一个文件或子目录的位置。
- `cur_mkdir->directItem[0].type=1;`:将该目录项的 `type` 字段设为 1,表示该目录项是一个子目录。
- `cur_mkdir->directItem[0].size=ROOT_lihao_SIZE;`:将该目录项的 `size` 字段设为目录的大小,这里的 `ROOT_lihao_SIZE` 可能是一个常量,表示该目录的预设大小。
需要注意的是,这段代码中的 `directitem` 应该改为 `directItem`,因为结构体中的成员名是区分大小写的。
cur_mkdir->directItem[1].sign=cur_dir->directItem[0].sign; cur_mkdir->directItem[1].firstDisk=cur_dir->directItem[0].firstDisk; strcpy(cur_mkdir->directItem[1].name,".."); cur_mkdir->directItem[1].next=cur_mkdir->directitem[1].firstDisk; cur_mkdir->directItem[1].type=1; cur_mkdir->directItem[1].size=ROOT_lihao_SIZE;
这段代码同样是在对目录项进行赋值操作,但是与前面的代码不同,这次是在为子目录中的 `..` 目录项赋值。下面是代码的解释:
- `cur_mkdir->directItem[1].sign=cur_dir->directItem[0].sign;`:将该目录项的标志位 `sign` 设为当前目录的第一个文件或子目录的标志位,表示该目录项当前被使用。
- `cur_mkdir->directItem[1].firstDisk=cur_dir->directItem[0].firstDisk;`:将该目录项的 `firstDisk` 字段设为当前目录的第一个文件(或子目录)在磁盘上的起始位置,表示该目录项的内容是当前目录的父目录。
- `strcpy(cur_mkdir->directItem[1].name,"..");`:将该目录项的 `name` 字段设为字符串 `".."`,表示该目录项对应的是当前目录的父目录。
- `cur_mkdir->directItem[1].next=cur_mkdir->directitem[1].firstDisk;`:将该目录项的 `next` 字段设为指向该目录项所在磁盘块的位置,即指向该目录项的第一个文件或子目录的位置,这里应该与第一个目录项的 `next` 字段相同。
- `cur_mkdir->directItem[1].type=1;`:将该目录项的 `type` 字段设为 1,表示该目录项是一个子目录。
- `cur_mkdir->directItem[1].size=ROOT_lihao_SIZE;`:将该目录项的 `size` 字段设为目录的大小,这里的 `ROOT_lihao_SIZE` 可能是一个常量,表示该目录的预设大小。
同样需要注意的是,这段代码中的 `directitem` 应该改为 `directItem`,因为结构体中的成员名是区分大小写的。