mexw32文件删除异常处理

本文探讨了在使用MATLAB过程中遇到的mexw32类型文件无法删除的问题,并分享了一种有效解决方案——使用clearall命令。文中还分析了mexw32文件的工作原理及可能存在的内存驻留问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


说起来这个问题其实困扰了我很久,直到现在我也没有弄明白为什么会这样,为什么我瞎试出来的这个方法有效。如果真等哪天我能够说的清楚,我想那个时候我对Windows下的PC程序编译以及运行机理了解的比较透彻了。

简单的现象描述:在使用MATLAB的时候,我时常会在仿真或者代码生成的时候遇到mexw32类型的文件无法删除的情况。经过多次摸索,我唯一能够确定的就是这个文件依然被MATLAB占用,因为我把MATLAB关闭后文件删除是没有问题的。


不过到底是如何被占用的呢?目前我自己掌握的知识点中关于这方面的描述还是比较浅显而且有限,唯一知道的就是mex(mexw32)文件其实跟Windows下的dll文件是一回事儿,只是后缀名上又一点差异。也就是说,这个文件是一个Windows下的动态链接库。在程序运行的时候需要被调用,这也就基本可以解析为什么仿真的时候需要用的这个文件了。

不过,即使是在程序仿真或者代码生成的过程中被使用了,在这些过程结束后也应该把资源释放掉。可现实情况中,我遇到的情况通常是即使是模型关掉了这个文件依然在被使用的过程中。这的确是有一点不好理解,具体的原因还是需要深究一下,那是后话了。

通常,有些强迫症的我实现这类文件删除的方法是关闭或者重启MATLAB,直到偶然一次试用了clear all的命令。执行了这个命令后,文件占用的问题就不会有了,此时进行文件删除是没有问题的。clear all能够清除一部分内存的驻留,看来mexw32文件加速仿真速度的是有一定代价的,那就是增加了内存的驻留。当然,这还是我的一点理解与猜测,具体的机理我还是没有花时间去查找相应的文档给自己的猜测寻找什么理论上的支持。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值