read() a select()(Was: Blokovani v fgets)
Michal Krause
mike na navrcholu.cz
Úterý Srpen 4 16:38:07 CEST 1998
Pavel Kankovsky wrote:
> roury maji tu vlastnost (ktera by mohla byt uzitecna), ze zapisy ktere
> nejsou delsi nez PIPE_BUF jsou atomicke (takze je lze precist najednou).
> U datagramovych socketu je pri pouziti send() a recv() mozno spolehlive
> rozlisit jednotlive casti i prijimajici strane.
Fajn, to by fungovalo. Sice nemuzu nikde najit PIPE_BUF, ale kdesi jsem cet, ze
to vubec nemusi byt limitovane (snad jen velikosti pameti).
Takze tim by se to vyresilo, ale porad zustava problem s tim, ze program ktery
vypada asi takhle
otevri fifo pro cteni
v nekonecnem cyklu
{
cti z fifo
pokud jsou data, zpracuj je
}
bude za predpokladu, ze je FIFO neotevrene a nejsou v nem data, behat v cyklu a
vezme si vsechen vykon procesoru. Nejak musi byt mozne ho pozastavit dokud se
data neobjevi. Takhle prece blokuje open(), pokud jde o fifo - dokud nekdo
neotevre druhy konec pro zapis, program stoji.
MK
/\
----------------------------------/ \----------------------------------
Michal Krause - 4WeB /\ / \ /\
mailto:mike na navrcholu.cz / \/ \/ \ Sluzba Na vrcholu
http://4web.navrcholu.cz/ / \ / \ http://www.navrcholu.cz/
ICQ:7665279 / \ / \
------------------------------------------------------------------------
Další informace o konferenci Linux