On Thu, 07 Oct 1999, Toma� Felicijan wrote:

> Resitev je taksna, da v primeru, ko ti "read" vrne vrednost 0 zapres PIPE in
> ga takoj odpres.

:-(.

> Tako bo pipe ponovno pripravljen na branje podatkov. Ce to storis v BLOCKING
> nacinu tako ali tako selecta ne potrebujes, drugace pa moras uporabiti
> "select".

Ocitno bom res presel na blocking in LinuxThreads.

> Mislim pa, da vsa stvar ni "BUG", ampak cisto normalno delovanje "read"
> sistemskega klica.

Za read() je ze normalno da vrne EOF in rc=0 ce nima nic za prebrati.
Select() me skrbi ker se zbudi na "read" ceprav ni podatkov.

> Osebno pa ti za komunikacijo med procesi priporocam SOCKET-e.

Sem ze gledal nekaj neko dokumentacijo, vendar nisem nasel primerjave
fifo/socket pa tudi fifo dokumentacija je bila boljsa.

Problem je:
Imam kontrolni program ki pozene en kup skript (ki nato *lahko* poganjajo svoje
skripte/programe). Kontrolni program moramo samo pologirati vse kar vsi
"otroci" in "vnuki" in ... posiljajo na stdin (stdin v skriptah preusmerim na
pipe).
Imho je FIFO idealen zato, vendar ker se ne spoznam dobro na IPC bom
hvalezen vsakega komentarja in nasveta kako s stvarjo.

Vprasanja so:
Glede na dani problem, kaj je bolje; socket ali fifo (komunikacija je
enosmerna ) ?
Kako se dela s socketom, s fifo skoraj znam delati :).
Predvidevam da je zadeva AF_UNIX in ne AF_INET kot "standardno".

-- 
best regards,
Rok Papez.

Reply via email to