[net.wanted] Using the Sys III tty driver

ok@edai.UUCP (Richard O'Keefe) (04/11/84)

     I'm looking for help on this particular one.   What  I  want  is  a
replacement  for  the  EUUG  V7 TIOCEMPTY ioctl() or the 4.?bsd FIONREAD
ioctl(). That is, most of the time I want read(fd, &c, 1) to wait  until
there  is  a character, while occasionally I want to check if there is a
character there, and I don't want to read it.

     Switching off ICANON and setting MIN = TIME = 0 lets  me  check  if
there  is  a character in the input queue by trying to read it; if there
isn't one read() returns 0, if there is one read() returns 1 and I  have
to  stash the character away and check for it every time I read from the
terminal or check for input, which is a pain, but I can  live  with  it.
However, that interferes with the other read() calls where I want TIME=0
but MIN=1.

     Is there any easy way of checking for input in Sys III or do I have
to do three system calls (an ioctl() to set MIN=0, a read(), and another
ioctl() to set MIN=1 again)?