Subject: allocating controlling terminal on tty open?
To: None <current-users@NetBSD.ORG>
From: Todd Vierling <tv@pobox.com>
List: current-users
Date: 11/05/1997 20:31:32
Now that we have pty's under SVR4, I can run dtterm and xterm from Solaris. 
Nice, but the tcsh shell says it can't do TIOCGPGRP because its tty isn't
actually a controlling tty.  <grumble>  termios(7) reads:

    A controlling terminal is never acquired by merely opening a terminal
    device file.

Hm, has it always been this way?  I can't recall.  It seems that SVR4
assumes that you allocate a controlling terminal by doing setpgrp() (SVR4
doesn't take arguments; the emulation makes it equivalent to setpgid(0,0))
in the child process followed by an open of a tty.  setsid() isn't called,
except by the parent process (which is already a process group leader, so it
gets EPERM).

Suggestions on how to get the child process to allocate a controlling tty? 
Is there any way to make a tty become controlling terminal when opened (or
opened for the first time) by a process group leader created by setpgrp()? 
I can't do it through emulation when TIOCGPGRP is called, because by that
time, the emulation is back to 'netbsd' (a native shell). 

=====
== Todd Vierling (Personal tv@pobox.com; Business tv@lucent.com)
== So you know what, Mikey?  Go to bed.