Solução alternativa para ENOTTY durante a execução de um processo c do script?

1

Qual é o problema? Obtendo um erro ENOTTY em uma chamada de função tcgetattr () quando o processo é chamado a partir de um script. O erro ocorre apenas quando executado a partir do script. Se for executado a partir de um shell interativo, funcionará bem.

O que exatamente o processo está fazendo? O processo está tentando desativar o processamento canônico da entrada de stdin. Isso é necessário porque as entradas podem estar chegando em rajadas e podem sobrecarregar a fila de entrada. Para isso, o processo obtém os parâmetros do descritor de arquivo de terminal para stdin usando a função tcgetattr (). e depois desliga a bandeira canônica em termios struct.

Motivo do erro? Quando um script é chamado, ele é executado no modo não interativo, o que significa que não há tty anexado e, portanto, não está disponível para o processo chamado a partir do script. É por isso que o processo está retornando ENOTTY.

Procurando? Solução alternativa para ainda ser capaz de invocar o processo a partir do script sem nenhuma alteração no programa? (Tentei forçar shell interativo usando -i no script, não funciona !!!)

Obrigado ...

    
por Mohit 15.01.2013 / 15:30

0 respostas