嗨,我是fatfs文件系统的新手,我想使用胖文件系统库读取和写入数据到我的笔式驱动器。我能够读取和写入单个文件,但我的项目需要我一次打开两个文件并在其中写入内容。但是这样做会返回FR_TOO_MANY_OPEN_FILES错误。我不知道如何删除它。请帮忙。我用来打开和写入文件的顺序如下。
rc = f_open(&My_File_Object_x, "0:/Hello.TxT", FA_WRITE | FA_READ | FA_CREATE_ALWAYS);
if(rc) { die(rc); }
rc = f_open(&rightcount, "0:/Hell.TxT", FA_WRITE | FA_READ | FA_CREATE_ALWAYS);
if(rc) { die(rc); }
rc = f_write(&My_File_Object_x, "Hello world!\r\n", 14, &bw);
if(rc) { die(rc); }
rc = f_write(&rightcount, "Hello world!\r\n", 14, &bw);
if(rc) { die(rc); }
rc= f_sync(&My_File_Object_x);
if(rc) { die(rc); }
rc= f_close(&My_File_Object_x);
if(rc) { die(rc); }
rc= f_sync(&rightcount);
if(rc) { die(rc); }
rc= f_close(&rightcount);
if(rc) { die(rc); }
答案 0 :(得分:1)
检查配置文件“ffconf.h”,在其中可以找到名为 _FS_LOCK 的选项。根据“FatFs”的手册:
如果值>> 0:启用文件锁定功能。该值定义了在文件锁定控制下可以同时打开多少个文件/子目录。
和
FR_TOO_MANY_OPEN_FILES: 打开的对象数已达到最大值,不能再打开对象。 (相关选项:_FS_LOCK)
根据您提供的信息,我只能猜测您的 _FS_LOCK 的值为1。