(求助)创建子目录文件指针偏移量计算问题

如题。 创建2级子目录,要求写入父目录的起始簇号。要把文件指针移动到目录项的文件起始簇号的高位和低位,需要计算偏移量。例9有例子。但是是c语言的。看不懂是如何计算出偏移量的。我的是汇编语言,能否直接使用CH376的命令得到这个偏移量? 还有,创建子目录后,文件指针是0吗?如果是0,其含义是指针指向子目录所在簇的开头,还是指向别的位置? 我的问题可能很基础,但我确实不懂。请高手指点。谢谢。

如果要创建2级目录,需要先打开其上级目录,并且读取其上级目录的的起始簇号,然后在创建第2级目录,并且把上级目录的起始簇号写入 第2级目录的目录项中相应的位置, 偏移位置 见下表 /* FAT数据区中文件目录信息 */ typedef struct _FAT_DIR_INFO { UINT8 DIR_Name[11]; /* 00H,文件名,共11字节,不足处填空格 */ UINT8 DIR_Attr; /* 0BH,文件属性,参考后面的说明 */ UINT8 DIR_NTRes; /* 0CH */ UINT8 DIR_CrtTimeTenth; /* 0DH,文件创建的时间,以0.1秒单位计数 */ UINT16 DIR_CrtTime; /* 0EH,文件创建的时间 */ UINT16 DIR_CrtDate; /* 10H,文件创建的日期 */ UINT16 DIR_LstAccDate; /* 12H,最近一次存取操作的日期 */ UINT16 DIR_FstClusHI; /* 14H */ UINT16 DIR_WrtTime; /* 16H,文件修改时间,参考前面的宏MAKE_FILE_TIME */ UINT16 DIR_WrtDate; /* 18H,文件修改日期,参考前面的宏MAKE_FILE_DATE */ UINT16 DIR_FstClusLO; /* 1AH */ UINT32 DIR_FileSize; /* 1CH,文件长度 */ } FAT_DIR_INFO, *P_FAT_DIR_INFO; /* 20H */


谢谢,我试试


只有登录才能回复,可以选择微信账号登录