Chinaunix首页 | 论坛 | 博客
  • 博客访问: 287637
  • 博文数量: 72
  • 博客积分: 2387
  • 博客等级: 大尉
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-26 10:54
文章分类

全部博文(72)

文章存档

2012年(1)

2011年(1)

2010年(70)

分类: C/C++

2010-09-03 10:15:41

popen和system都可以执行shell脚本,在开发的工程中发现在线程中调用popen执行shell脚本(主要是mv和rm文件)程序经过长期的运行发现有许多僵尸进程。
查看代码 popen后也进行了pclose。没有发现问题。
后来把用popen的地方换成了system,到现在未出现僵尸进程。
popen的原理是先创建一个管道,然后fork一个进程来执行shell命令。
system也是fork一个进程来执行shell命令,但调用者进程会等待shell执行结束后才继续执行,就是说system是阻塞的。
 
popen出现僵尸进程可能由于他不是线程安全的。
阅读(1956) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~