Thread readdir -> Änderungen im Verzeichnis
(12 answers)
Opened by Cappu at 2009-08-13 21:50
Ich habs glaube ich etwas besser getestet als meine beiden vorherigen Poster. Am besten ist es für den test einen eigenen ordner zu erstellen.
Hier die Testdatei. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 my @files = 1 .. 1_000; system "touch $_" for @files; opendir my $dh, '.' or die $!; my $first = readdir $dh; print "Sleeping...\n"; sleep 5; unlink for @files; my @exists; while ( my $file = readdir $dh ) { push @exists, $file; } closedir $dh or die $!; print "Count: ", scalar @exists + 1, "\n"; print "$first @exists\n"; Die datei geht zuerst hin und erzeugt 1.000 Dateien. Danach wird ein einziger Eintrag ausgelesen. Danach werden alle erzeugten 1.000 Dateien wieder gelöscht. Das nur ein eintrag ausgelesen wird, und dann gelöscht wird, soll halt simulieren das es parallel läuft, und ein anderer prozess während des lesens einzelne Dateien löschen kann. Danach warte ich mit sleep kurz 5 sekunden. Das ist eigenltich nur drin damit man sich händisch davon überzeugen kann "ls -l | wc -l" das auch 1000 dateien erzeugt wurden. Danach lese ich den Rest des verzeichnisses aus, und pushe es in ein array. Zum schluss gebe ich die anzahl aus wieviele Einträge gefunden wurde. "+1" deswegen da das einzelne readdir mit eingebunden wird. Ausgabe, des Programmes. Code: (dl
)
1 sidburn@sid:~/perl/foo$ ./readdir.pl Erklärung dazu gibt es im nächsten Commit. Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|