首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不是来自包含exec()的do while循环

不是来自包含exec()的do while循环
EN

Stack Overflow用户
提问于 2010-12-11 23:48:08
回答 2查看 254关注 0票数 1

我有一个php脚本,它启动三个exec()命令并获得它们各自的pids。

我想等待所有三个exec命令都停止运行,然后再转到下一批三个命令。

我尝试过在do while循环中检查每个pid,但它似乎从未离开过循环:它只是一直在那里,直到脚本超时。

以下是我尝试的简化版本:

代码语言:javascript
复制
do {
 $pid = 722;
 print "checking";
 exec("ps -p $pid", $output);
 $count = count($output);
} while ( $count >= 2 );

print "out of do while";

有没有人知道是什么原因导致它永远不会出现在循环中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-11 23:52:27

PHPs exec只是不断地追加到数组中,因此计数只会增加。要覆盖输出数组,请在调用exec之前调用unset($output)

有关更多详细信息,请参阅php manual on exec

票数 5
EN

Stack Overflow用户

发布于 2010-12-11 23:52:09

如果存在输出参数,则将使用命令的每一行输出填充指定的数组。此数组中不包括尾随空格,例如\n。exec注意,如果数组已经包含了一些元素,()将追加到数组的末尾。如果不希望该函数追加元素,请在将数组传递给exec()之前对其调用unset()。

来自exec() manual

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4417486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档