[linux] Rura obojsmerna
Ondrej Jombik
nepto na pobox.sk
Pátek Květen 2 00:48:09 CEST 2003
> -> bufferovanie nie je ziaduce. Filedescriptor, ktory vznikol cez pipe()
> -> vsak evidentne do kategorie nebufferovanych vstupov resp. vystupov
> -> nepatri.
> obavam sa ze jedine co glibc testuje je, ci je stdout terminal. Ak ako,
> nebufferuje, ak nie, bufferuje...
To je pravdepodobne...
> existuje tu teda pomerne hlupy workaround k danej situacii a to pouzit
> terminal :)
Cize childu posunut nejakym sposobom TTY. Toto ma napadlo uz davno, ale
za rok som neprisiel nato, ze ako. Mozno casom, ako sa moje vedomosti
rozsiria. A ktovie ci to vobec pomoze.
> v pripade ze potrebujes nebufferovat vystup v aplikacii ktoru
> programujes, mozno by si sa mal pohrat s funkciou setvbuf() resp
> setlinebuf()
Ano, ked ide o moju stream-based aplikaciu, nemam problem "forcnut" si
nebuferovanie. Funguje to vo vsetkych kompilovanych aj interpretovanych
programovacich jazykoch. Napriklad pre Perl:
# System init
select(STDERR); $| = 1; # make unbuffered
select(STDOUT); $| = 1; # make unbuffered
Problem nastava, ked chcem pouzivat v sustave procesov uz naprogramovane
a zname aplikacie ako napriklad uz zmienovany "rev".
--
_/| Ondrej Jombik - nepto na php.net - http://www.nepto.sk - OJ812-RIPE
<_ \ Platon SDG - open source software development - http://platon.sk
`\| Ako sa do hory vola, tak sa zhori traktor! (c) 1999 Rattkin/MFF
'`
Další informace o konferenci linux