PHP proc_open поток stdout захватывает запись в файл, а также выводит текстPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP proc_open поток stdout захватывает запись в файл, а также выводит текст

Сообщение Anonymous »

Платформа — Linux. У меня есть программа на C++, которую я написал, которая отображает текст через cout и записывает в файл через ofstream. Затем я запускаю эту программу из PHP через proc_open, и мне нужно захватить текст cout, но не запись ofstream.
Есть ли какой-нибудь способ чтобы сделать это без вывода токена (например, «собираюсь записать в файл» и после этого php пропускает вывод)?
Соответствующие фрагменты кода ниже:
PHP

Код: Выделить всё

function CCexecuteandprint($CCexecuteandprintCommand)
{
$CCexecuteandprintDescriptor = array(0 => array("pipe","r"),1 => array("pipe","w"));
$CCexecuteandprintPipes = array();
$CCexecuteandprintProcess = proc_open($CCexecuteandprintCommand,$CCexecuteandprintDescriptor,$CCexecuteandprintPipes,getcwd(),null);
$CCexecuteandprintOutput = "";

if (is_resource($CCexecuteandprintProcess))
{
do
{
$CCexecuteandprintOutput = fgets($CCexecuteandprintPipes[1]);//wait for EoL
CCimmediateoutput($CCexecuteandprintOutput.'
');
$CCexecuteandprintStatus = proc_get_status($CCexecuteandprintProcess);
}
while($CCexecuteandprintStatus['running']);
}
else echo "Unable to start process\n";

fclose($CCexecuteandprintPipes[0]);
fclose($CCexecuteandprintPipes[1]);
proc_close($CCexecuteandprintProcess);
C++

Код: Выделить всё

std::ofstream output("filename");
output 

Подробнее здесь: [url]https://stackoverflow.com/questions/79093551/php-proc-open-stdout-stream-capturing-file-writes-as-well-as-text-output[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»