首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zend-server下的popen和poclose

zend-server下的popen和poclose
EN

Stack Overflow用户
提问于 2012-12-05 07:47:32
回答 1查看 224关注 0票数 5

我偶然发现了一个我无法解释的现象。

我使用popen执行php,然后以这种方式执行php脚本,然后关闭它。到目前为止还不错。我遇到了相当严重的麻烦,因为我使用它的脚本没有执行,而是在连续尝试3次之后,我崩溃了zend-服务器(不再打开页面)。我发现造成这种情况的原因是我为php.exe使用了错误的目录。示例:

代码语言:javascript
复制
if (pclose(popen("C:\wrongDir\php\php.exe C:\Zend\Apache2\htdocs\myApp\public\mytest.php 57 > C:\Logs\1\0\jobOut.log 2> C:\Logs\1\0\jobErr.log"))>-1)
{
.....
}

除了"wrongDir“之外,其他所有的and都是correct....the,甚至创建了jobOut和jobErr文件(这些文件是空的)。(注意: PHP不在搜索路径中,这就是在没有正确路径的情况下找不到PHP的原因)

尽管我现在已经解决了这个问题……,我有一个问题:这是一个正常的行为,还是我做错了什么(甚至是服务器设置)。从我在手册中读到的关于这两个命令的内容来看,听起来像是在我的例子中,我的返回值应该是-1或0,而不是我在这个过程中遇到的问题,然后服务器挂起)。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-12-10 12:17:52

看起来close ()并不返回进程的退出状态,而是返回它关闭进程的能力。

要获得进程终止“代码”,请使用pcntl_wifexited()和pcntl_wexitstatus()

http://php.net/manual/en/function.pclose.php

http://php.net/manual/en/function.pcntl-wexitstatus.php

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

https://stackoverflow.com/questions/13718506

复制
相关文章

相似问题

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