pojmenovan roura
Ondrej Kamenik
kamenik na math.muni.cz
Pondělí Prosinec 8 15:52:33 CET 1997
Ahoj vsichni,
neco jsem programoval a posilal pojmenovanou rourou. Zjistil jsem neco,
co se mi zda divne, zda se mi, ze to funguje trosku jinak nez by clovek
ocekaval. Tedy, Pani Linuxovi Mistri posudte:
1) zapisovatel vytvori pojmenovanou rouru
2) ctenar ji otevre ke cteni bez blokovani, tedy:
fifo=open(cesta,O_RDONLY|O_NONBLOCK);
3) zacne cist volanim:
char c;
read(fifo,&c,1);
tady bych ocekaval, ze read vrati -1 a v errno bude EWOULDBLOCK (nebo
EAGAIN). Ale vono nic, volani read nezkolabuje a v c se mi objevovala 0.
4) zapisovatel otevre rouru k zapisu, ale jeste nic nezapisuje
5) v tuto chvili to pracuje, jak clovek (Kamenik) ceka. Volani read na
strane ctenare zahlasi chybu a v errno je EAGAIN.
Otazka zni: proc to nefunguje tak, jak by clovek (kamenik) cekal?
Na vsechny moudre rady a odpovedi (kterych bude urcite hodne) se tesi
Ondra K.
Další informace o konferenci Linux