Da stat
ein "Gerät" -Feld zurückgegeben wird, war ich gespannt, wie der zugrunde liegende stat()
Bibliotheksaufruf verwendet werden kann, um diese Informationen programmgesteuert auf POSIX-kompatible Weise abzurufen.
Dieser Ausschnitt aus C-Code:
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
int main (int argc, const char *argv[]) {
struct stat info;
stat(argv[1], &info);
printf("min: %d maj: %d\n",
minor(info.st_dev),
major(info.st_dev)
);
return 0;
}
Gibt die Haupt- und Nebengeräte-IDs für das Gerät an, das die in der Befehlszeile ( argv[1]
) aufgeführte Datei enthält . Leider major()
und minor()
nicht POSIX, obwohl die Manpage behauptet, dass sie neben GNU / Linux "auf vielen anderen Systemen vorhanden" sind.
Sie können dann eine Korrespondenz zwischen der Haupt- / Nebennummer des Geräts und dem Geräteknoten von z. B. /proc/diskstats
abrufen und diese zuordnen, um Punkte von /proc/mounts
, auch bekannt als, anzuhängen. /etc/mtab
.
Ein Befehlszeilenprogramm, um dies zu tun, wäre also ziemlich einfach.
tr
Anrufawk -F'% '...