Help w/pipes and stdout

Craig V. Johnson vince at fluke.UUCP
Fri Mar 8 05:06:43 AEST 1985


I'm sure this is trivial stuff to many of you experts but after several hours
of manual perusal I have come up confused.  The following all applies to a
4.2BSD system.

Could someone explain to me how a process can tell if stdout is connected to
a tty, file, or pipe?  I found that the manual for fstat (2) says that it
does not know a file from a pipe, but it also says that it can determine if
fd is associated with a socket.  I thought that a pipe was a special case of
a socket.  What gives?  Is there another, perhaps simpler, way to get this
information?

Also, I would like to know if it is possible to affect pipe buffering (change
from line to unbuffered) from the receiving end.  I attempted to
"setbuf(stdin,0)" but it did not achieve the desired affect.  Apparently, the
other end of the pipe was still set up for line buffering.

What I would like to do is terminal emulation which captures stdout,
processes it and then passes it on to the real tty.  Ideally, I could

	csh | terminal_emulator

and I would have a shell with output being translated from one terminal type
to another.  Can anybody advise me?  By the way, I do not have super-user
privledges so possible solutions should not hinge on that condition.

	Craig Johnson			uw-beaver!	\
	John Fluke Mfg. Co., Inc.	decvax!microsof!  \
	Everett, Washington		ucbvax!lbl-csam!    >  fluke!vince
					allegra!	  /
					ssc-vax!	/



More information about the Comp.unix.wizards mailing list