Подтвердить что ты не робот

Функция Linux для получения точек монтирования

Есть ли в стандартных Linux-библиотеках функция (или интерфейс; ioctl, netlink и т.д.), которая вернет текущие mounts непосредственно из ядра без разбора /proc? strace команда mount, похоже, что она анализирует файлы в/proc

4b9b3361

Ответ 1

Есть ли причина, по которой вы не будете использовать вызов библиотеки getmntent libc? Я понимаю, что это не то же самое, что системный вызов "все в одном", но он должен позволить вам получить соответствующую информацию.

#include <stdio.h>
#include <stdlib.h>
#include <mntent.h>

int main(void)
{
  struct mntent *ent;
  FILE *aFile;

  aFile = setmntent("/proc/mounts", "r");
  if (aFile == NULL) {
    perror("setmntent");
    exit(1);
  }
  while (NULL != (ent = getmntent(aFile))) {
    printf("%s %s\n", ent->mnt_fsname, ent->mnt_dir);
  }
  endmntent(aFile);
}

Ответ 2

Для отображения этой информации нет syscall; вместо этого вы можете найти его в файле /etc/mtab