चूंकि stat"डिवाइस" फ़ील्ड देता है, इसलिए मैं यह देखने के लिए उत्सुक था कि stat()POSIX अनुपालन तरीके से इस जानकारी को प्रोग्रामेटिक रूप से प्राप्त करने के लिए अंतर्निहित लाइब्रेरी कॉल का उपयोग कैसे किया जा सकता है।
सी कोड का यह स्निपेट:
#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;
}
कमांड लाइन ( argv[1]) पर सूचीबद्ध फ़ाइल वाले डिवाइस के लिए प्रमुख और मामूली डिवाइस आईडी देगा । दुर्भाग्य से, major()और minor()POSIX नहीं हैं, हालांकि मैन पेज का दावा है कि वे GNU / लिनक्स के अलावा "कई अन्य प्रणालियों पर मौजूद हैं"।
इसके बाद आप डिवाइस मेजर / माइनर नंबर और डिवाइस नोड के बीच से एक पत्राचार प्राप्त कर सकते हैं, उदाहरण के लिए /proc/diskstats, और मैप करें कि /proc/mountsउर्फ से माउंट करें । /etc/mtab।
तो यह करने के लिए एक कमांड-लाइन उपयोगिता बहुत सरल होगी।
trकॉल का उपयोग करके दूर कर सकते हैंawk -F'% '...