Da statein "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/diskstatsabrufen 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.
trAnrufawk -F'% '...