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

c语言linux下能不能隐藏的运行一个shell,并且将shell结果全部写到文件中
我知道c语言写的模拟shell ,用fork和execvp。希望能不用进程,完成这个任务。。。
但是我的程序是多线程的。。。用fork就出问题。。。

------解决方案--------------------
多线程调用fork是不安全的,你可以看看这个函数pthread_atfork。
或者fork进程后立刻exec,试试。
------解决方案--------------------
多线程就不要去用fork了,内存地址空间的共享方式不一样。既然你是多线程,再起一线程去执行shell比较合适,也比较可控。