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