问题标签 [proc-open]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 使用 proc_open 时从 STDIN 管道读取
我正在尝试建立一个人们可以在线编译和运行代码的网站,因此我们需要找到一种交互方式让用户发送指令。
其实首先想到的是exec()
or system()
,但是当用户想输入某事时,这种方式是行不通的。所以我们必须使用proc_open()
.
例如下面的代码
我用proc_open()
的时候像这样
运行 C 代码时,我想获取第一个 STDOUT 流,并输入数字,然后获取第二个 STDOUT 流。但是,如果我将注释行取消注释,则该页面将被阻止。
有没有办法解决这个问题?当并非所有数据都放在那里时,如何从管道中读取?或者有没有更好的方法来编写这种交互式程序?
php - 如何创建具有资源 ID 的资源?
当我使用proc_open
时,它返回一个资源句柄,表示为Resource id #4
. 此代码在服务器上运行,我想再次使用该 ID 使用此“句柄”。但是在客户端和服务器之间进行了某种数据传输之后,我得到的只是资源的 id,Resource id #4
而不是指针。
是否可以使用唯一的 id 重新创建资源?
php - proc_open 在 Windows 7 中运行时间过长
我正在使用elfinder 2.0,但它在 Windows 7 中不起作用。原因是该proc_open()
函数执行时间过长。例如,一个简单的命令,例如tar --version
执行 25 秒proc_open()
。这是这段代码:
我该如何解决这个问题?
php - PHP 使用 proc_open 执行两个 C 程序
我在 C 中创建了两个程序。第一个获取一个数字并打印它的 double 值,第二个打印四倍。
我想通过 PHP 执行它们。我已经使用 proc_open 完成了它,如果我每次只执行一个程序,它就可以正常工作。
我必须给第一个程序一个数字并将其输出作为输入传递给第二个程序。虽然我使用两个 proc_open 来创建两个进程,但整个过程都不起作用。我想做的是这样的:
我知道这是一种错误的做法,但我想不出其他任何事情,所以......欢迎任何帮助。注意:我在 Windows 上工作。
php - 如何通过主脚本控制其他脚本并在它们运行时向它们传递参数
我有一个main.php和test.php。
- test.php应该由main.php执行
- 两个脚本都必须无限运行。
- main.php必须在一段时间内检查test.php是否正在运行,如果它没有运行(以防发生错误),请再次执行它。
- 我也必须有错误日志。
- 如果main.php收到
'test stop'
它发送'close'
到test.php并且test.php必须停止(我不知道执行后如何将我的订单(例如'test stop'
)发送到main.php?)
我有这个样本:
主.php:
测试.php:
好的,这是我的代码的摘要,但它们不能正常工作。
例如,当脚本到达test.php$status = trim(fgets(STDIN));
中的这一行时,它会等到输入,如果我们不为它发送任何输入,脚本会停止并且不运行其余代码,但我希望脚本在循环中运行并执行命令,直到main.php将输入传递给他。
我在窗户上工作。
java - proc_open (php => java) 可以有多个输入流吗?
我在 php 中使用 proc_open 来调用 java 应用程序,向其发送大文本进行处理并捕获返回的结果。是否可以传递多个文本字符串(输入流)而不仅仅是一个?
这就是我目前所拥有的:
如果我这样做,java 仍然会将其识别为一个输入流:
那么这样的事情可能吗?如果没有,还有其他选择吗?我不能使用命令行参数,因为它是一个多行的大文本。
java - php proc_open 将输入传递给java慢
我在 php 中使用 proc_open 来调用 java 应用程序,将要处理的文本传递给它并读取输出文本。Java 执行时间很长,我发现其原因是读取输入花费了大部分时间。我不确定是php还是java的错。
我的PHP代码:
我的java代码:
我正在传递 3800 行的 java html 文件(作为独立文件的大小约为 200KB)。这些是日志文件中细分的执行时间:
我的问题是:为什么输入比输出长 100 倍?有没有办法让它更快?
php - 使用 php proc_open 执行命令时无法获得输出?
我编写了一个 php 函数来执行 shell 脚本,但如果命令执行正确,我无法获得输出,函数和 shell 脚本如下:
PHP函数:
该命令如下:
php - proc_open leaves zombie process
The following scripts monitors /dev/shm/test
for new files and outputs info about it in real time.
The problem is that when user closes the browser, a inotifywait
process remains open, and so on.
Is there any way to avoid this?
php - 使用 proc_open() 在 PHP 中运行 C 可执行文件
如果您发现这个问题新手,我很抱歉(再次)。但是我在proc_open上确实遇到了问题。
我有一个C 文件,我想运行它proc_open()
并从文本文件中读取输入。我能够获取输入并将其提供给可执行文件。问题是我只是硬编码了array of fetched strings
.
PHP代码片段:
add2.c
管道[1]上的流(printf)
问题:对于如何将“ $input ”元素作为输入布局,是否有“动态方式”?
或者是否有一种更方便的方法可以从文件中获取输入并scanf
在proc_open()
.
(顺便说一句,对于那些遇到麻烦的人proc_open()
,尤其是像我这样的初学者,我希望我的代码能以某种方式帮助你。这是我在几次尝试后第一次让它运行,所以我的代码很简单。)
对于专业人士,请帮助 meeeee。:( 谢谢你!