日期:2014-05-16  浏览次数:20687 次

问个非常诡异的嵌入式系统中进程的问题
我做了一个qt界面程序Q,在程序中要fork出一个子进程来,并在子进程中用(execlp)执行另外一个程序L,并且要与父进程通信,该程序在pc机上一切运行正常,但是交叉编译过移植到sitsang板之后再运行,用ps命令察看,就会看到三个L进程,其中一个是run状态,另外两个是sleep状态。更郁闷的是,当我点击界面上的按钮与L程序通信时,又会再开启一个L进程,而且是RUN状态。
      刚开始以为是我的程序结构有问题,但是在PC机上就始终只有一个进程,所以我想应该是嵌入式系统方面的一些原因。有没有哪位遇到过类似问题?请指点一下,谢谢了

------解决方案--------------------
qt很少用fork的吧,试试QProcess
http://doc.trolltech.com/3.3/qprocess.html
------解决方案--------------------
我遇到过,在X86和ARM上用ps显示出来进程个数不一样(没有深查具体原因)。
但是我觉得对我的程序没有影响啊。


你能说说对你的程序的影响吗?

------解决方案--------------------
详细检查你的多线程库pthread。如果在嵌入式环境中使用多线程,会出现类似的问题。可能不是导致你问题的原因,但是我想造成问题的原因是相同的:在HOST环境和EMBEDDED环境,标准库实现方式是不一样的。