Оскільки 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 / Linux.
Потім ви можете отримати відповідність між основним / другорядним номером пристрою та вузлом пристрою, наприклад /proc/diskstats
, та зіставити це місце для монтажу точок з /proc/mounts
ака. /etc/mtab
.
Отже, утиліта командного рядка зробити це було б досить просто.
tr
дзвінка, скориставшисьawk -F'% '...