Wie bekomme ich die Größe eines Verzeichnisses in C?

8

Gibt es eine POSIX-Funktion, die mir die Größe eines Verzeichnisses (einschließlich aller Unterordner) gibt, ungefähr gleichbedeutend mit " du -s somepath "?

    
John Carter 23.01.2009, 12:23
quelle

2 Antworten

26
%Vor%
  

NAME

     

ftw , nftw - Dateibaum gehen

     

BESCHREIBUNG

     

ftw() durchläuft den Verzeichnisbaum   Das befindet sich unter dem Verzeichnis   dirpath und ruft fn() einmal für jeden auf   Eintrag im Baum. Standardmäßig,   Verzeichnisse werden vor dem   Dateien und Unterverzeichnisse, die sie enthalten   (Durchlauf vorbestellen).

     

NACH

     

POSIX.1-2001, SVr4, SUSv1.

Einfaches Beispiel

%Vor%     
Alex B 23.01.2009, 12:35
quelle
2

Es gibt keine vorgefertigte Funktion, Sie müssen also Ihre eigenen erstellen. Sie können sich den Quellcode der GNU-Implementierung von du als Beispiel anschauen (siehe Ссылка ) für eine Liste von Orten zum Herunterladen von). Es befindet sich im Paket coreutils .

Die entscheidenden Posix-Aufrufe sind wahrscheinlich opendir , readdir , closedir und stat .

    
user25148 23.01.2009 12:26
quelle

Tags und Links