[comp.unix.questions] Help me fiddle the console

daveg@coho.UUCP (Dave Gagne) (11/22/88)

  I have a graphics-based application which currently MUST run directly
from the console - ie: it CAN'T run under suntools.  Unfortunately,
this means that any console messages print out all over the screen,
wiping out stuff, and generally mucking up the graphics.  The
application does have a screen refresh command, but it is a real pain
to have to refresh the screen every 2-3 minutes (Yes, we DO get a lot
of console messages: mostly things like "ie1: spurious interrupt").

  The program accepts input both from mouse inputs and from the keyboard.
Keyboard commands can be single key short commands (like vi's command
mode) or full newline terminated strings.

  What I would like to do is run a C program which grabs all console
output console and redirects it somewhere: to /dev/null or maybe to a
file.  I have been using the command sequence:

    int  on;
    int  tty, pty;
    . . .
     
    pty = open ("/dev/ptyqf", O_RDWR);
    if (pty == -1)
        SystemError ("pty not opened");
    
    tty = open ("/dev/ttyqf", O_RDWR);
    if (tty == -1)
        SystemError ("tty not opened");

    on = 1;
    if (ioctl (tty, TIOCCONS, &on) == -1)
        SystemError ("ioctl failed");


  My intention was to direct the console output to the pseudo-tty pair,
so console messages don't come out on the screen.  This much seems to
work, the messages no longer appear (and they get logged to the file
I specified).

  The PROBLEM is that INPUT is redirected as well: it now comes from the
pseudo-tty (I think).  In any case, I can no longer enter commands from 
the keyboard, and have the application see them.  In other words, input
cannot come directly from the console keyboard.

  What I want to know is how can I redirect the console output messages
to a file, but keep the input attached to the process?

-- 
+---------------------------------------------------------------------------+
|  Dave Gagne.              UBC VLSI Salmon Net       o    /\        /\     |
|                                               _____   o    \      /  \    |
|  daveg@ee.ubc.ca                            \/    o\_o      \    /    \   | 
|  ...!ubc-vision!ee.ubc.ca!daveg             /\_____/         \  /      \  |
|  daveg@ee.ubc.cdn%ean.ubc.ca@RELAY.CSNET                      \/        \ |
+---------------------------------------------------------------------------+