我有一个奇怪的问题,到目前为止我还没有遇到过。
我创建了两个线程,每个线程基本上都是打开aaFILE*
把一些数据写入磁盘。现在,写入部分本身不会导致运行时问题(虽然输出似乎已损坏),但是当我关闭这两个单独线程中的两个不同时,所有的地狱都会崩溃。 FILE*
我看到一个线程_IO_buf_base
指向,0x7ffff66d3000
而另一个线程_IO_write_end
指向0x7ffff66d3000
. 也许这就是 fclose 失败的原因:
*** Error in `/home/raid/Documents/Temp/TemperatureMonitoringC/Debug/TemperatureMonitoringC': free(): invalid next size (normal): 0x00007ffff0000950 ***
*** Error in `/home/raid/Documents/Temp/TemperatureMonitoringC/Debug/TemperatureMonitoringC': free(): invalid next size (normal): 0x00007ffff0003540 ***
我很确定我不是第一个搞砸的人。任何人都可以帮忙吗?我在 Google 上找不到足够清晰的参考资料。
两个线程的调试器屏幕截图: