เนื่องจากstat
ส่งคืนฟิลด์ "อุปกรณ์" ฉันอยากรู้ว่าstat()
จะใช้การเรียกไลบรารี่พื้นฐานเพื่อรับข้อมูลนี้โดยทางโปรแกรมในลักษณะ POSIX ได้อย่างไร
ตัวอย่างรหัส C นี้:
#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 / Linux
จากนั้นคุณสามารถได้รับการติดต่อระหว่างอุปกรณ์หลัก / รองหมายเลขและโหนดอุปกรณ์จากเช่น/proc/diskstats
และแมปที่จะเมานต์จุดจาก/proc/mounts
aka /etc/mtab
.
ดังนั้นอรรถประโยชน์บรรทัดคำสั่งในการทำเช่นนี้จึงค่อนข้างง่าย
tr
โทรครั้งสุดท้ายโดยใช้awk -F'% '...