Porting the BSD 4.3 Tahoe distribution to System V

Guy Harris guy at auspex.UUCP
Sat Feb 11 19:50:15 AEST 1989


>     A: Is there is any documentation, especially of the include files,
>        somewhere in the release.  Any man(1) entries?

If by "the release" you mean "4.3-tahoe", check out "/usr/src/man".

>     B: What is the difference between the ioctl(2) system call
>        utilizing the <termio.h> include file and the ioctl(2) call
>        using <sttyb.h>.  My system has both include files, but they are
>        clearly not compatible.  I have no documentation for sgttyb.h on
>        my machine and including both in the same source file causes
>        complaints about redefining things.  My version of sgtty.h does
>        not define CBREAK.  Is CBREAK equivalent to RAW?

Oh boy.  Your system probably has the S5 version of the <sgttyb.h>-style
"ioctl"s, which are not compatible with the V7 ones that BSD uses.  You
probably want to rewrite the tty-munging code.

CBREAK is not equivalent to RAW; RAW turns off all input and output
processing, while CBREAK merely turns off erase/kill processing. 
Turning CBREAK on is equivalent to turning ICANON off in the
<termio.h>-style "ioctl"s.

>     C: The BDS software, (for libcurses), uses a stty() system call
>        with a pointer to a sgtty structure.  I have stty() in the libc
>        archive, but it is not documented.  The result of using it seems
>        to be a hung terminal.  To make the BSD software work, does
>        everything have to be rewritten in terms of ioctl() calls and
>        termio.h defines?

See above.  Yes, you probably want rewrite it all in therms of the
<termio.h> stuff.  "stty" is an old V6ism that in V7 and S3/S5 turned
into the TIOCSETP "ioctl" (and "gtty" is another old V6ism that in V7
and S3/S5 turned into TIOCGETP). 

>     D: The BSD software often deals directly with variables defined in
>        stdio.h.  The scanw.c routine of libcurses, contains the line
>        junk._flag = _IOREAD|_IOSTRG; What does _IOSTRG mean?  Is is
>        equivalent to _IOMYBUF?

_IOSTRG means "this buffer is a string, not a file; don't try doing I/O
on it."  I think the S5 equivalent is setting "junk._file" to _NFILE.



More information about the Comp.unix.wizards mailing list