[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Debian]: Paketgroesse bei named pipes



On Wed, 8 Apr 1998, Andre Beck wrote:

> 
> On Fri, Apr 03, 1998 at 05:09:31PM +0200, Volker Hejny wrote:
> > 
> > Ein wenig suchen hat dann doch noch geholfen. Der Pipe-Buffer wird
> > in linux/limits.h auf 4096 gesetzt.
> 
> Davon abgesehen ist das kein Linuxismus. 4096 ist die nahezu auf
> jedem Unix gültige maximale Bytemenge, die ich durch eine Pipe in
> einem Ruck bekomme. Ein ordentliches Buch zur Programmierung unter Unix
> sollte sich dieser Thematik widmen ;)

Naja, der POSIX Standard verlangt nur 512 Byte.

Aber im Prinzip hatte mich auch nicht gestoert, dass ich keine atomaren
Operationen mit Bufferlaenger groesser 4k machen kann, sondern mich hat
das unterschiedliche Verhalten irritert. 
Angenommen ich habe einen Prozess, der mit write() 8k grosse
Pakete in die Pipe schickt. Nun lese ich mit read(fd,buf,8192).
Dann geschieht folgendes:

- Unter Linux bekomme ich bei jedem read-Befehl 4k zurueck, 
- unter Digital Unix z.B. bekomme ich bei jedem read Zugriff die an-
  geforderten 8k Daten.

Hier koennte man mit dem evtl. groesseren Buffer bei DU argumentieren
und die Welt waere in Ordnung. (Allerdings ist der Buffer bei DU
AFAIK nicht groesser, aber da lasse ich mich gerne belehren.)

Was nun seltsam ist und nicht zusammenpasst, ist folgendes: 

Wenn ich nun statt 8k Pakete solche mit 512 Laenge schicke (und
trotzdem ein read(,,8192) mache), habe ich folgendes Ergebnis:

- Unter Linux bekomme ich 512 Byte Haeppchen, also soviel, wie ich
  geschrieben habe. 
- Unter DU bekomme ich aber weiterhin die vollen angeforderten
  8k Daten!

Und das verstehe ich auch immer noch nicht. Da ich bisher nur
unter DU Erfahrungen mit Pipes hatte, hat mich das Verhalten von
Linux doch etwas ueberrascht. Was ist denn nun "richtig" ?

Viele Gruesse,
Volker

P.S.: Wer schickt eigentlich alle Mails der letzten Tage nochmal
      ab? Und das manchmal doppelt und dreifach ??? Oder bekomme
      nur ich diese Mailflut ? 

-- 
Volker Hejny, II. Phys.Institut, Univ. Giessen |  Tel.: 0641 - 99 33223
Heinrich-Buff-Ring 16, D-35392 Giessen         |  Sekretariat II. Physik: 
EMail: Volker.Hejny@exp2.physik.uni-giessen.de |  Tel.: 0641 - 99 33261       
WWW: http://piggy.physik.uni-giessen.de/~hejny |  Fax : 0641 - 99 33209


------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <your_email_address>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder:     434


Reply to: