Что эквивалентно getfsstat () в Linux? - PullRequest
3 голосов
/ 20 декабря 2009

Вопрос говорит сам за себя. Я хочу вызов функции C, которая возвращает список смонтированных файловых систем вместе со связанной информацией, такой как тип файловой системы.

Ответы [ 2 ]

6 голосов
/ 20 декабря 2009

Вы ищете getmntent и другие *mntent семейства функций. См. manpage Для дальнейшего использования.

Пример кода взят из здесь и немного изменен. /etc/mtab - это файл, который содержит список смонтированных файловых систем.

mounts = setmntent("/etc/mtab", "r");
while ( (ent = getmntent(mounts)) != NULL ){
    if (strcmp(ent->mnt_type, "iso9660") == 0)
       /* copy mount point to output */
       strcpy(retval[cd_count - 1], ent->mnt_dir);
    } /* if */
} /* while */
endmntent(mounts);

К сожалению, этих функций нет в POSIX. Но они управляются и реализуются в glibc, поэтому я думаю, что они являются лучшей альтернативой, чем разбор /proc.

1 голос
/ 20 декабря 2009

Можно разобрать /proc/filesystems.

...