desaparecendo do console spool ao usar posix spawn com um programa C [closed]

1

OS: linux programa: C

cenário 1:

Eu tenho um programa que quando eu corro da linha de comando, ele se comporta corretamente. No entanto, quando eu uso o posix_spawn para lançá-lo, ele se comporta mal.

O programa pega dados de um arquivo como entrada e depois executa os dados como comandos. Por exemplo, os comandos são executados através de um sistema ("ls > / tmp / key")

Se eu executar o programa a partir do prompt de comando, ele é executado corretamente e eu encontro a saída no tempfile (mkostemp)

cenário 2:

Se eu executar o programa de outro programa que, por sua vez, executa um posix_spawn e inicializa o programa, posso fazer um PS e ver o programa sendo executado, mas não recebo nenhuma saída para o meu arquivo temporário.

mods:

Eu tentei modificar meu lançamento posix_spawn de acordo com um exemplo encontrado aqui Como um programa autônomo com um par de erros encontrados no original que eu corrigi, o programa funciona muito bem. no entanto, no meu exemplo original acima eu não recebo saída

Se eu não tiver que interagir com o console, pareço fazer ok. Por exemplo, se eu executo um programa que lança um script via posix_spawn e o script contém algo assim:

  #!/bin/bash
  myprog myparm1 myparm2

A propósito, é assim que eu lanço o programa agora.

que alternativas para posix_spawn eu tenho para iniciar comandos e capturar a saída enquanto evito arquivos?

E por que a capacidade de fazer spool para console desaparecer? - se console é o termo certo.

Vou tentar executar o exemplo referenciado no cenário # 2 para isolar ainda mais o problema enquanto aguardo uma resposta.

    
por Div 14.03.2018 / 13:21

0 respostas

Tags