buffering pipes

Nick Demou ndemou at gmail.com
Mon Apr 16 14:31:09 EEST 2007


Nick Demou wrote:
> έχω αυτή την εντολή:
>    prog1 | prog2
> υπάρχει κάποιο prog_buf με το οποίο θα μπορούσα να την κάνω έτσι:
>    prog1 | prog_buf | prog2
> όπου το prog_buf ΠΡΩΤΑ θα διαβάσει ΟΛΟ το output του prog1 και META θα
> το στείλει στο prog2

μετά ο Christos Ricudis <ricudis at komodino.itc.auth.gr> wrote:
> prog1 > /tmp/temp.$$
> prog2 < /tmp/temp.$$
> rm -f /tmp/temp.$$

αυτό ακόμα κι εγώ το ήξερα ;-P

On 4/16/07, Tasos Laskos <tasos.laskos at gmail.com> wrote:
> Den eimai sigouros alla:
> echo `prog1` |  prog2
> mporei na doulepsei.

αυτό είναι λιγότερο εκ των προτέρων προφανές  (εκ των υστέρων όλα στο
unix εύκολα φαίνονται :-)

---ΑΛΛΑ---

δεν μπορώ να το κάνω με κανέναν από αυτούς τους τρόπους. Το "prog1 | "
θεωρήστε το δεδομένο[1] και μπορούμε να κάνουμε αλλαγές μόνο από εκεί
και πέρα. Αυτός είναι ο λόγος που ανέφερα ότι ψάχνω για ένα prog_buf
(όπου το prog_buf ΠΡΩΤΑ θα διαβάσει ΟΛΟ το output του prog1 και META
θα το στείλει στο prog2)

Θα το έφτιαχνα σε [insert some scripting lang you like here] αλλά
υπέθεσα πως "δεν μπορεί θα υπάρχει ήδη" γιατί έχω βρει στο unix ένα
σωρό τέτοια απλά εργαλεία



On 4/16/07, Giorgos Keramidas <keramida at ceid.upatras.gr> wrote:
> Δοκίμασε με μικρότερο timeout από 300 sec στο fetchmail.  Και το
> maildrop και το fetchmail έχουν default timeout 300 sec, και μάλλον
> αυτό που πετυχαίνεις είναι ένα πανέμορφο race condition, μεταξύ
> fetchmail και maildrop, για το ποιός θα κλείσει πρώτος το pipe στα
> μούτρα του άλλου...

Το fetchmail δεν έχει timeout (ή έχει πολύ μεγάλο)
Μόνο το maildrop έχει αλλά δεν αλλάζει παρά μόνο στο source :(


_______________
[1] Το fetchmail καλεί ΜΕΣΑ στον κώδικα του το πρόγραμμα που θα του
υποδείξεις με μια γραμμή στο configuration του. Μετά του περνά στο
stdin το stream του email. Μπορώ λοιπόν να πω στο fetchmail να καλέσει
το "prog_buf | prog2" αντί για το "prog2" αλλά δεν μπορώ να κάνω άλλες
αλλαγές.




More information about the Linux-greek-users mailing list