Vamos começar dizendo que toda a E / S, seja baseada em arquivos, interativa ou de qualquer outra forma, requer descritores de arquivos exclusivos para cada.
A padronização de descritores de arquivos interativos é o que permite o redirecionamento e a canalização.
O shell é especialista em manipulações de E / S padrão.
No seu exemplo, cat
é chamado com seu STDIN configurado para a saída do shell representando seu script HEREDOC (enviado por meio de popen()
) e com seu STDOUT canalizado (com popen ()) para php
's STDIN. A saída de php
não está sendo redirecionada, aponte para o STDOUT inicial do shell.