popen,system
时间:2010-09-03 来源:snailshen
popen和system都可以执行shell脚本,在开发的工程中发现在线程中调用popen执行shell脚本(主要是mv和rm文件)程序经过长期的运行发现有许多僵尸进程。
查看代码 popen后也进行了pclose。没有发现问题。
后来把用popen的地方换成了system,到现在未出现僵尸进程。
popen的原理是先创建一个管道,然后fork一个进程来执行shell命令。
system也是fork一个进程来执行shell命令,但调用者进程会等待shell执行结束后才继续执行,就是说system是阻塞的。
popen出现僵尸进程可能由于他不是线程安全的。
相关阅读 更多 +