por que não podemos chamar a função tcsetattr para definir a configuração do pseudo-terminal quando o processo de chamada está sendo executado em segundo plano?

1

Estou trabalhando em um projeto onde tenho que salvar e restaurar a configuração do pseudoterminal. Eu sou capaz de usar tcgetattr para salvar as configurações do terminal, mesmo quando o processo de chamada está em segundo plano. No entanto, o caso não é o mesmo com a função tcsetattr para restaurar as configurações do terminal, quando o processo de chamada está em segundo plano. Apenas desliga no tcsetattr.

Alguém sabe por que isso acontece e alguém pode sugerir a ideia de como posso obter a restauração do ajuste do terminal para um processo em segundo plano?

EDITAR

Circunstância: Isso é fluxo de trabalho do programa de amostra e estou tentando tirar um instantâneo do programa e reiniciá-lo mais tarde:

main function
  -- opens a master pty with NOCTTY flag
  -- opens a slave pty with NOCTTY flag
  fork 
parent process
  -- close the slave and wait for child process
child process
  -- set up slave pty as a new controlling terminal
  -- saves controlling term setting i.e.slave
  -- run a while loop for 200 seconds (using SIGALARM) 
       and do some trivial task locally
    
por Baba Rocks 19.04.2017 / 20:28

0 respostas