Unix braindamage (/dev/tty vs. /dev/console vs. /dev/ttyX)

Pavel Kankovsky peak na kerberos.troja.mff.cuni.cz
Čtvrtek Říjen 2 11:01:10 CEST 1997


On Wed, 1 Oct 1997, Pavel Machek wrote:

> Chtel bych se zeptat - ma nekdo prehled o tom jak funguje /dev/tty?
> Jsem nalogovan na konzoli 8:
> 
> $ { echo "ahoj" > /dev/tty } < /dev/tty1 > /dev/tty1 2> /dev/tty1
> ahoj
> $

/dev/tty je vzdy a jedine ridici terminal procesu
aby se tento zmenil, musi byt nejprve proces od sveho ridiciho terminalu
(controlling terminal, ctty) odpojen (na coz se musi stat "vedoucim smeny"
(session leader, pro ty, co to nepochopili :> ) a pak provest ioctl
s parametrem TIOCNOTTY) a pripojen k jinemu (coz se stane automaticky pri
otevreni /dev/tty*, pokud neni zadan flag O_NOCTTY, proces je session leader,
nema ctty a otevirany terminal neni ctty jine session, nebo to lze udelat
pres ioctl TIOCSCTTY)

dobra zprava je, ze tohle vse lze provest pomoci prikazu open, takze
vyse uvedene lze provest (nyni jiz s ocekavanym vysledkem) takto:

$ open -s -c 1 -- sh -c 'echo "ahoj"'

--Pavel Kankovsky aka Peak (troja.mff.cuni.cz network administration)



Další informace o konferenci Linux