我使用proc-open创建了一个进程,但是在windows下,流选择无法工作。我试图实现的是从stdout和stderr中读取,同时还编写stdin并确保输出可以与输入匹配。有什么办法可以解决windows的不足吗?
发布于 2012-04-05 19:17:45
对于在Windows上使用流-select不适合您的内容,您不是很详细。但是,这是一个关于如何使用的工作示例。我刚刚在Windows上用PHP5.4成功地运行了这个程序。
编辑: Uhhmmm.似乎它毕竟不起作用.Sry,在这里测试更多..。:)
编辑:
所以,我做了更多的实验,但没有成功。
也许你应该让进程彼此交流TCP/UDP/IP?
另一种方法(如果您仍然希望在您的进程中使用stdout/stdin/stderr )可能是在文件处理程序中使用proc_open,所以您的进程正在写入文件,然后使用类似于unix‘inotify的方法,使用PHP类加载这些内容:Windows上有类似inotify的东西吗?来检测文件的更改…?只是一个主意..。
或者换一个类似unix的操作系统?)好的,今晚就这样吧。晚安
发布于 2018-12-13 00:14:38
添加bypass_shell给我起了作用
$proc=proc_open($cmd,
array(
0=>array('pipe', 'r'), //stdin
1=>array('pipe', 'w'), //stdout
2=>array('pipe', 'w') //stderr
),
$pipes,
$dir,
null,
array('bypass_shell'=>true)
);https://stackoverflow.com/questions/9909315
复制相似问题