Forum: PC-Programmierung Linux: named pipes mit mehr Platz?


von EZ81__ (Gast)


Lesenswert?

Guten Abend,

ich möchte folgendes (halbwegs einfach und überschaubar, Effizienz ist 
unwichtig) mit bash-Skripten (wenn möglich) umsetzen:

Skript A: Bekommt gelegentlich einen Wert als Parameter übergeben und 
legt diesen in einer Warteschlange ab, ohne darauf zu warten, dass B ihn 
abholt.

Skript B: greift den ersten Wert aus der Warteschlange, bearbeitet ihn 
(was etwas dauern kann), greift den nächsten, u.s.w.. Wenn die Schlange 
dann leer ist, wartet es, bis wieder ein Wert dazukommt.

Bei der Suche bin ich auf named pipes gestoßen, die ideal wären, aber 
leider nur einen Wert aufnehmen können, d.h. B muss den Wert lesen, 
bevor A den nächsten schreiben kann, was gerade nicht der Sinn der Sache 
sein soll.

Ich hatte schon eine Idee mit numerierten Dateien in einem Verzeichnis, 
die von A geschrieben und von B einzeln gelesen, verarbeitet und dann 
gelöscht werden, aber das muss doch eleganter gehen?

Oder liege ich ganz falsch und es gibt einen ganz anderen Ansatz für das 
Problem? Wonach kann ich suchen?

Grüße,
;Matthias

von Bobby (Gast)


Lesenswert?

Soweit mir bekannt ist, puffern die named pipes durchaus mehr als einen 
Wert.
Aber wenn das nicht reicht, probier mal das Programm "buffer" aus.
Das arbeitet wie ein Filter.

von EZ81__ (Gast)


Lesenswert?

Hallo Bobby,

danke, es geht tatsächlich irgendwie mit mehreren Einträgen, aber nicht 
so, wie ich es mir vorgestellt hatte. Werde doch die Pfuschlösung mit 
den Dateien probieren.
Danke

Matthias

von Rolf Magnus (Gast)


Lesenswert?

Eine Pipe (ob nun mit oder ohne Name) ist unter Linux per Default auf 4k 
begrenzt. Ändern kann man das nicht ohne weiteres.

> danke, es geht tatsächlich irgendwie mit mehreren Einträgen, aber nicht
> so, wie ich es mir vorgestellt hatte.

Wie hast du es dir denn vorgestellt?

> Werde doch die Pfuschlösung mit den Dateien probieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.