[问题] system()指令卡住

楼主: niss (niss)   2014-07-24 01:52:33
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
我在主程式A中使用system()呼叫另一个执行档B,但主程式运行到后来时,system()这道
指令似乎会停住。
我在system()前一行有cout,被呼叫的执行档B只要一执行便会在log file做纪录。
会说system()卡住是因为console上有印出位于system()前一行的资讯,而执行档B
的log file并未有执行的纪录,因此问题就在于system()这道指令成功呼叫执行档B前。
奇怪的点在于停下的点不是固定的,因为主程式A使用system()会破万次,通常在于九千
近一万开始卡,每次的点会不同。停的时间也不固定,从几十秒到一两个小时都有。
目前推测是system()在fork()时有问题,但我也不是很懂这道指令,网络查到的资讯
还在消化中,先请教版上的各位,谢谢。
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):
作者: bobhsiao (↙小臃肿.人肥言轻↗)   2014-07-24 02:08:00
我遇过旧的 uclibc 0.9.28 的system() 也有怪问题
作者: q82419 (q82419)   2014-07-24 03:57:00
考虑用exec()系列吧
楼主: niss (niss)   2014-07-24 11:50:00
exec()不是会取代父程序? 还是我有理解错误,不好意思
作者: askacis (ASKA)   2014-07-24 13:10:00
看一下内存资讯,每个system指令都会跟主程序一样内存
作者: q82419 (q82419)   2014-07-24 22:11:00
fork()后 child去exec()

Links booklink

Contact Us: admin [ a t ] ucptt.com