[linux-l] Du und ls geben verschiedene Werte an

Steffen Dettmer steffen at dett.de
So Nov 12 18:48:09 CET 2006


* Michael Sucha wrote on Sun, Nov 12, 2006 at 17:30 +0100:
> Hier noch mal die Ausgaben:
> 
> 	 % du -sch core.4753
> 	 % 32M   core.4753
> 	 ls -lh core.4753
> 	 -rw------- 1 michael michael 121M Nov  7 00:42 core.4753

Was passiert eigentlich, wenn man sowas macht wie:

  fd = open("file", ...)
  write(fd, buffer, 4096);
  seek(fd, 1024*1024, FSEEK_SET);
  write(fd, buffer, 4096);
  close(fd);
  
(hab lokal hier gerade keine manpages zu Hand, würd ich ja sonst fast
mal probieren ;)).

Wenn das ganz schlau wäre, könnte es ja eine ca. 1 MB grosse Datei
erstellen, die nur 2 * 4 KB (also 2 * FS-Blockgrösse) viel Platz
verbraucht, weil die anderen Daten ja gar nicht geschrieben wurden (dann
muss aber jemand beim Lesen aufpassen, dass nicht etwa uninitilisierte
Daten "gelesen" werden, die evtl. vertrauliche Informationen von anderen
Benutzern oder Files enthalten).

Würde so ein Vorgehen erklären, dass ls und du sich so verhalten?

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.





Mehr Informationen über die Mailingliste linux-l