c ++: saída do subprocesso para stdin

Suponha que eu queira chamar um subprocesso de dentro do meu programa e desejo ler a saída desse subprocesso no meu program

Aqui está uma maneira trivial de fazer isso:

//somefile.cpp
system("sub_process arg1 arg2 -o file.out");
           //call the subprocess and have it write to file
FILE *f = std::fopen("file.out", "r");
//.... and so on

Todos sabemos que as operações de E / S são computacionalmente lentas. Para acelerar isso, eu gostaria de pular a etapa de gravação em arquivo e depois leitura de arquivo e redirecionar a saída desse subprocessodirectly into stdin (ou algum outro fluxo)

Como eu faria isso? Como pulo a operação de E / S?

Nota: muitos programas lançam algumas coisas de diagnóstico no stdout enquanto são executados e escrevem uma versão limpa da saída para o stdout (por exemplo: stdout: "passo 1 ... pronto, passo 2 ... pronto, passo 3 .. pronto" - o file-out: "O número mágico é: 47.28"), portanto, ignorar o argumento "-o" e confiar que a saída será redirecionada automaticamente para o stdout não é necessariamente útil ...

Agradecemos a todos antecipadamente.

questionAnswers(3)

yourAnswerToTheQuestion