Vì stat
trả về trường "Thiết bị", tôi tò mò muốn xem cách stat()
gọi thư viện cơ bản có thể được sử dụng để lấy thông tin này theo chương trình theo cách tuân thủ POSIX.
Đoạn mã C này:
#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;
}
Sẽ cung cấp ID thiết bị chính và phụ cho thiết bị chứa tệp được liệt kê trên dòng lệnh ( argv[1]
). Thật không may, major()
và minor()
không phải là POSIX, mặc dù trang man tuyên bố chúng "hiện diện trên nhiều hệ thống khác" bên cạnh GNU / linux.
Sau đó, bạn có thể nhận được sự tương ứng giữa số chính / số phụ của thiết bị và nút thiết bị từ, ví dụ /proc/diskstats
, và ánh xạ để gắn điểm từ /proc/mounts
, aka. /etc/mtab
.
Vì vậy, một tiện ích dòng lệnh để làm điều này sẽ khá đơn giản.
tr
cuộc gọi cuối cùng bằng cách sử dụngawk -F'% '...