popen,system

1940阅读 0评论2010-09-03 snailshen
分类:C/C++

popen和system都可以执行shell脚本,在开发的工程中发现在线程中调用popen执行shell脚本(主要是mv和rm文件)程序经过长期的运行发现有许多僵尸进程。
查看代码 popen后也进行了pclose。没有发现问题。
后来把用popen的地方换成了system,到现在未出现僵尸进程。
popen的原理是先创建一个管道,然后fork一个进程来执行shell命令。
system也是fork一个进程来执行shell命令,但调用者进程会等待shell执行结束后才继续执行,就是说system是阻塞的。
 
popen出现僵尸进程可能由于他不是线程安全的。
上一篇:位运算应用口诀和实例
下一篇:AIX线程堆栈