作者:~~~ | 来源:互联网 | 2023-06-01 10:19
今天写程序的时候,遇到了一种奇怪的现象:f_open函数第一次可以调用,第二次调用时出现程序死掉的现象。起初移植以为时Fat文件系统存在BUG的问题,后来看了很多类似的问题和解决方案
今天写程序的时候,遇到了一种奇怪的现象:
f_open函数第一次可以调用,第二次调用时出现程序死掉的现象。
起初移植以为时Fat文件系统存在BUG的问题,后来看了很多类似的问题和解决方案后,将FIL结构体对象设置为全局变量 ,然后就可以避免该错误。如下图所示,将FIL结构体的两个fread和fwrite变量设置为全局变量,该方法避免了堆栈溢出现象。
![](https://img1.php1.cn/3cd4a/24d65/882/10e96b5f714a8e65.jpeg)
下图即该解决方案的来源。
![](https://img1.php1.cn/3cd4a/24d65/882/b3de05385f6580d9.jpeg)