[linux-l] Dateien durchsuchen
Oliver Bandel
oliver at first.in-berlin.de
Di Nov 26 19:01:36 CET 2002
On Tue, Nov 26, 2002 at 06:15:21PM +0100, Tobias Schlottke wrote:
> On Tue, 26 Nov 2002 oliver at first.in-berlin.de
>
> > > b) wie lang darf die Argumentzeile auf meinem Linuxrechner werden?
> >
> > Das ist implementierungsabhängig.
> >
> > => ARG_MAX ; sollte minimal 4096 sein; muß aber nicht
> >
> > Wieviele Dateien wird find / -type f wohl finden?
> >
> > Mit hoher Wahrscheinlichkeit mehr als 4096.
> >
> > Und mit ner alten xargs-version knallts dann.
> >
> > Ich habe noch die genervten Wehklagen der Unixer im Ohr,
> > die deswegen abgekotzt hatten... :(
>
> Mooooment. Wenn xargs zu dem Rechner paßt auf dem
> es läuft, sollte entweder der richtige ARG_MAX
> benutzt werden (bei Unixen wo man diesen Wert
> dynamisch ändern kann) oder halt der richtige Wert
> einkompiliert worden sein. Wenn man's richtig
> macht, kann's eigentlich nicht krachen. Selbst
> wenn Du nur 10 Parameter verwenden darfst.
> Dann muß xargs den betreffenden Befehl x Mal
> ausführen und ihm jedesmal das neue Häppchen
> Files/Parameter übergeben.
Ja, muß vielleicht.
Aber ob's das macht, ist ja die Frage.
Wenn es ungeprüft der Anzahl
> Wieso hat das in der von Dir zitierten Umgebung
> gekracht?
Frage das die Programmierer von xargs (in jenen
Versionen), die eben nicht bei mehr als ARGV_MAX
Argumenten das ganze
aufgeteilt haben.
Bekanntlich reichen zwei Dezimalstellen für die
Jahreszahlenangaben und 640 kB als RAM bis in alle
Ewigkeit.
Und 4096 CLI-Parameter anscheinend auch.
Seitdem ich immer wieder über solche Fallen gestolpert bin,
habe ich mir defensives Programmieren angewöhnt und prüfe
lieber alles dreimal, auch wenn das "doch garnicht notwendig ist,
weil das ja schon der andere Teil der Software erledigt."
Ja, und wer sich drauf verlässt, den sieht man dann Wochenlang
debuggen.
Daß die Schlauköppe hier in der Mailinglist noch nie
über solche Probleme gestolpert, ist ja schön für die.
Spätestens, wenn's dann doch mal kracht und mal teuer wird,
werden die dann auch blöde blöde glotzen.
Ciao,
Oliver
Mehr Informationen über die Mailingliste linux-l