Sourcode von Linux-Befehlen
-
Hallo,
ich möchte den freien Plattenplatz der Festplatte ermitteln.
Der Befehl df gibt auf der Console ja den Plattenplatz aus...
Jetzt hätte ich gern den Quellcode dieses Befehls angeschaut, doch leider finde ich ihn nichtKann mir jemand sagen, wo der Sourcecode zu den Linuxbefehlen liegt? Denn wie das Package heißt weiß ich leider auch nicht...
Gruß und schon mal danke
Poolplayer
-
df ist Teil der GNU fileutils und findet sich damit im gleichnamigen Paket unter
http://www.gnu.org/software/fileutils/fileutils.htmlEdit: ist inzwischen zusammengeschmissen zu den coreutils unter http://www.gnu.org/software/coreutils/
-
Hallo TriePhoenix,
vielen Dank für Deine Antwort.
Ich habe mir coreutils von der gnu-Seite heruntergeladen und installiert. Es gibt zwar ein src bzw. lib-Verzeichnis, wo auch die Headerdatei zu dem Befehl df vorhanden ist. Doch wenn ich diese (oder eine andere) Headerdatei (z.B. fsusage.h --> mit der man den Freien plattenplatz ermitteln kann) einbinden will, dann findet der gcc die Headerdateien nicht.Dies liegt einfach daran, dass make/make install die Header nicht im Verzeichnist /usr/include installiert hat.
Kann mir jemand sagen, wie ich make dazu bewegen kann, diese Headerdateien zu installieren???
Gruß und danke
Poolplayer
-
man cp. Normalerweise haben die Header von installierten Anwendungen nichts in /usr/include zu suchen. Schau Dir lieber mal die Umgebungsvariable INCLUDE und den gcc-Parameter -I an.
-
Hallo,
was meinst Du denn mit man cp --> da steht ja auch nur die hilfe zu dem copy-Befehl drin, und keine Infos zu Headerdateien...gcc test.c -I /Pfad zu src-Verzeichnis
Naja, dann findet er zwar die Headerdatei, doch compilieren kann ich immer noch nicht, weil ich wohl noch im gcc-Befehl Dateien mit einbinden müßte, die ich aber nicht kenne
Heißt das nun, dass ich diese Header-Dateien einfach nicht nutzen kann, oder bin ich einfach zu dämlich???
-
In den Header-Dateien steht nur die Deklaration der Funktionen, nicht aber die Definition. Die musst Du schon noch selber hinzulinken.
-
Hi,
ich habe mir den Sourcecode von df.h / df.c näher angeschaut.
Nach langem hin und her suchen hab ich gefunden, welche Module df benutzt.
Dieses Wissen will ich euch nicht vorenthaltenMit folgendem Programm wird die Plattengröße von / in Blöcken ausgegeben:
#include <sys/statfs.h> int main() { struct statfs fsd; if (statfs ("/", &fsd) != 0) return -1; printf("Blockgröße:%i\nGesamte Blöcke:%i\nverfügbar(für normalen User):%i\n",fsd.f_bsize, fsd.f_blocks, fsd.f_bavail); return 0; }
Falls jemand eine einfachere Möglichkeit kennt, kann er gern posten
Gruß
Poolplayer
@SG1: Es ist schon klar, dass in den Headerdateien nur die deklarationen stehen - Die entscheidende Frage ist nur in welchen Dateien stehen die Definitionen??? --> Wenn ich nur die .c-Datei hinzulinke klappt es auf jeden Fall nicht, das müssen schon noch irgedwie mehr sein...
??
-
btw. wenn du dich für die Funktionalität eines Programmes interessierst, kannst du das wunderbar mit strace auch machen.