Como faço para que o tcsetpgrp () funcione em

Estou tentando dar um processo filho (viafork()) acesso em primeiro plano ao termina

Depois que eufork(), Eu executo o seguinte código no processo filho:

setpgid(0, 0);

E

setpgid(child, child);

No processo pai.

Isto fornece à criança seu próprio grupo de processos. A chamada parasetpgid() funciona corretament

gora, quero dar à criança acesso ao termina

Adicionei o seguinte à criança após osetpgid() ligar

if (!tcsetpgrp(STDIN_FILENO, getpid())) {
    perror("tcsetpgrp failed");
}

Depois disso, existe umexecv() comando para gerar/usr/bin/nano.

No entanto, em vez de ternano, nada acontece e o terminal parece estar esperando a entrada do usuári

Além disso, nenhum código parece ser executado após otcsetpgrp() ligar

Li em algum lugar que preciso enviar umSIGCONT sinaliza ao processo filho para que ele funcione. Se o processo for interrompido, como posso fazer isso? Os pais precisam enviar o sinal?

Como faço para enviar oSIGCONT sinaliza se essa é a solução?

raise(SIGCONT);

Além disso, não tenho certeza se isso ajuda, mas o código funciona bem e geranano se eu executar o meu programa com:

exec ./program

Ao invés de

./program

Alguma ideia? Muito obrigado

questionAnswers(3)

yourAnswerToTheQuestion