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.