Pty driver info needed.
Keith Gabryelski
ag at elgar.UUCP
Wed Feb 15 09:04:41 AEST 1989
In article <603 at tapa.UUCP> larry at tapa.UUCP (Larry Pajakowski) writes:
>Chip's message about script reminds me that I have been unable to get
>any info on the pty driver in the SCO 386 kernel.
>How close are they to the Berkeley or Sun pty drivers?
They seem pretty close. But I noticed a possible name clash with
mscreen(M) and standard ptys.
ptys in mscreen(M) seemed to named (slave) `/dev/ttyp%d' and (master)
`/dev/ptyp%d' where `%d' is the some number.
This is not compatible with other ptys which are named (slave)
`/dev/tty%c%x' and (master) `/dev/pty%c%x' where `%c' is a letter `p'
and up and `%x' is a hex digit.
The following code fragment from my version of BSD script(1/C) may
explain what I mean a little better.
This code tries to find an available pty on the system.
*--------------------------------------*
found_pty = FALSE;
for (i=0; i < 255 && !found_pty; ++i)
{
#ifdef SCO_PTYS
(void) sprintf(master_pty_filename, "/dev/ptyp%d", i);
#else /* !SCO_PTYS aka The Real Thing */
(void) sprintf(master_pty_filename, "/dev/pty%c%x", 'p'+i/16, i%16);
#endif /* !SCO_PTYS */
if ((master_pty_fd = open(master_pty_filename, O_RDWR)) != -1)
{
#ifdef SCO_PTYS
(void) sprintf(slave_pty_filename, "/dev/ttyp%d", i);
#else /* !SCO_PTYS aka The Real Thing */
(void) sprintf(slave_pty_filename, "/dev/tty%c%x", 'p'+i/16,
i%16);
#endif /* !SCO_PTYS */
if ((slave_pty_fd = open(slave_pty_filename, O_RDWR)) < 0)
{
(void)
fprintf(stderr,
"%s: Couldn't open slave pseudo tty: %s (%s).\n",
progname, slave_pty_filename,
long_error(errno));
(void) exit(1);
}
else
found_pty = TRUE;
}
}
*--------------------------------------*
So, in your code you must compensate for either naming conventions.
Possibly by using one of the above naming conventions (modifing
existing code that may need it; ie GNU EMACS) or by using bother
naming conventions.
>Can anyone enlighten me and the rest of this group on their findings.
^S and ^Q will not pass through the SCO ptys unless you `stty -ixon
-ixoff' before doing the mscreen(M) thing. I do the ioctl thing in
script(C) to solve this problem.
Remember to open both sides of the pty to make sure it is availble for
use since the slave could have a getty running on it (for use in
mscreen(M)).
Pax, Keith
--
ag at elgar.CTS.COM Keith Gabryelski ...!{ucsd, crash}!elgar!ag
More information about the Comp.unix.xenix
mailing list