[C] 纯文本查看 复制代码 open_file(&(list->File),(char *)(list->File.filename),(char *)(list->File.extname) );
这一行传参是不是正确的?一加上这一行就报错了。
修改的代码在main.c中的这一段,主要想实现打印出文件中的内容。
[C] 纯文本查看 复制代码 void disp_list(FileList *list) {
FileList *ptr = NULL;
FileState fstate;
puts("filelist:");
while(list) {
ptr = list->prev;
putchar('\t');
disp_name(list->File.filename, sizeof(list->File.filename));
putchar('.');
disp_name(list->File.extname, sizeof(list->File.extname));
putchar('\n');
putchar('\t');
read_state(&(list->File), &fstate);
printf("create time: %d-%d-%d\n", (fstate.year+2000), fstate.month, fstate.day);
putchar('\t');
printf("file state: 0x%x\n", fstate.state);
putchar('\t');
printf("block addr: 0x%x,cluster_addr: 0x%x,length: 0x%x\n",
list->File.block, list->File.cluster, list->File.length);
list = ptr;
putchar('\t');
open_file(&(list->File),(char *)(list->File.filename),(char *)(list->File.extname) );
read_file(&(list->File), dat, 0, 256) ;
printf("%s\n",dat);
printf("%s\n",list->File.filename);
//printf("%s\n",list->File.extname);
}
}
[C] 纯文本查看 复制代码 uint8_t open_file(File *file, char *filename, char *extname)
[C] 纯文本查看 复制代码 typedef struct file {
uint8_t filename[8]; // 文件名
uint8_t extname[4]; // 拓展名
uint32_t block; // 文件索引记录地址
uint32_t cluster; // 文件内容起始扇区地址
uint32_t length; // 文件大小
} File;
// 文件信息链表
// 32bytes(64bit), 28bytes(32bit)
typedef struct file_list {
File File;
struct file_list *prev;
} FileList;
[C] 纯文本查看 复制代码 void disp_list(FileList *list)
源码
SPIFS.rar
(164.29 KB, 下载次数: 2)
|