vxworks下fopen和open打开文件问题,连续多次打开关闭文件50次以上时就失败了

swayer 2008-10-19 07:27:15
main()
{
while(1)
{
if(open(f.txt)打开文件成功)
{
//dosomething;

close()//关闭该文件
}
else
{
printf("打开出错");
}
}
}
上述伪代码实现的测试程序在vxworks下运行时,当循环次数在50多次时就开始报打开文件出错了(而在我实际程序中只打开20次它就报错了),如果我在colse()调用后面加上sleep(1),且至少是一秒时,程序就可以一直循环下去,不会报打开文件错误了(但这样的话实时需求无法满足)。 并且当我换成非系统调用函数fopen()和fclose()时也会出现相同问题。

我怀疑是vx下设置了最大打开文件句柄数maxnum(close()并未将文件关闭),能否定制内核改变maxnum呢,请高手指教!

有资料说函数dosFsInit()可以修改该maxnum,是否正确? 有没有方法可以让colse或者fclose在用户调用后马上就执行(真是的释放掉句柄资源)?
...全文
1125 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
thomascatlee 2008-11-03
  • 打赏
  • 举报
回复
vxWorks要重新下载到目标机上,而不是downloadable的模块
swayer 2008-10-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 frank_zhou 的回复:]
vxworks的project中operating system components->IO system components->IO system,将参数NUM_FILES由默认的50改大点就行了,比如改成500
[/Quote]

我修改了这个两个属性值,重新编译了vx,重启了系统,编译了测试程序然后download后执行还是出错,是不是我修改的属性并没有导到目标机上呢,我试过了3台目标机都没有把问题解决,不知道为什么了
土豆 2008-10-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 frank_zhou 的回复:]
vxworks的project中operating system components->IO system components->IO system,将参数NUM_FILES由默认的50改大点就行了,比如改成500
[/Quote]
顶,正解。如果不用tornado或者workbench的GUI界面配置,也可以修改宏NUM_FILES的值。但是推荐用GUI界面去修改。
thomascatlee 2008-10-22
  • 打赏
  • 举报
回复
这个参数也影响同时打开的socket数量
frank_zhou 2008-10-21
  • 打赏
  • 举报
回复
vxworks的project中operating system components->IO system components->IO system,将参数NUM_FILES由默认的50改大点就行了,比如改成500
coolwysergmail 2008-10-21
  • 打赏
  • 举报
回复
以前系统老是死,结果是打开n多串口,iosFdshow加devs看看。
开串口也这样测试过,到了50个就挂了。
cool_ice1020 2008-10-20
  • 打赏
  • 举报
回复
是这样的,在定制系统时候,会设置文件系统最多同时可以打开的文件数,一般都设置为50,即同时可以打开50个文件,如何超过就会报错。
按你上么讲的情况,应该是在关闭时又打开了文件即系统还没有处理完关闭文件操作,所以通过sleep延时就可以解决。你可以通过修改BSP,修改
最多可以同时打开文件的数量。
内容概要:本文研究了基于Q-Learning自适应强化学习的PID控制器在自主水下航行器(AUV)运动控制中的应用,旨在提升其在复杂海洋环境下的控制性能。通过建立AUV的动力学模型,将Q-Learning算法与传统PID控制相结合,实现控制器参数的在线自适应优化,有效增强了系统的响应速度、稳定性和抗干扰能力。研究采用Matlab进行仿真验证,结果表明该方法在轨迹跟踪与姿态控制方面具有优越表现,为水下机器人智能控制提供了可行的技术路径与理论支持。; 适合人群:具备自动控制理论、强化学习或水下机器人建模背景,从事相关科研工作的研究人员、高校研究生及工程技术开发者。; 使用场景及目标:①应用于高精度、强鲁棒性的水下机器人运动控制系统设计;②开展智能PID控制器在非线性、变系统中的参数自整定研究;③作为强化学习在复杂工业控制场景中落地的典型案例参考,推动算法与工程实践融合。; 阅读建议:建议结合提供的Matlab代码进行仿真实验,重点剖析Q-Learning与PID融合的架构设计、奖励函数设定及参数收敛过程,可进一步拓展至与其他智能优化算法(如DQN、Actor-Critic)的对比研究,深化对自适应控制机制的理解。

2,187

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧