Форум программистов, компьютерный форум, киберфорум
С под Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 3
1

Как получить список смонтированных систем?

01.06.2014, 22:59. Просмотров 2081. Ответов 10
Метки нет (Все метки)


Здравствуйте!

Требуется получить информацию об одной из смонтированных файловых системах.
Как получить для начала хотя бы список смонтированных систем? Как узнать их свойства, такие как "к какому каталогу она подмонтирована"?

Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2014, 22:59
Ответы с готовыми решениями:

Поиск файла на внешних устройствах или как получить список всех смонтированных носителей
В общем есть задача найти файл test.txt в директории testdir на любом устройстве SD карта или USB...

Получить список смонтированных дисков
Как получить список дисков в системе (то есть d:, c:, k: и т.д.) через коммандную строку? Нужно...

Как получить список директорий и список файлов в директории?
Очень нужно организовать поиск на диске. Как искать в нутри файла я знаю, а вот как искать вовсех...

Как узнать список target систем которые поддерживает компилятор gcc в Linux?
Как узнать список target систем которые поддерживает компилятор gcc в Linux? Что такое target...

10
3268 / 2330 / 425
Регистрация: 28.04.2012
Сообщений: 7,815
02.06.2014, 07:13 2
Bash
1
2
3
4
5
$ mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
0
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 3
02.06.2014, 23:49  [ТС] 3
Спасибо, забыл как то про консольные команды.

Добавлено через 15 часов 9 минут
На случай, если вдруг кому пригодится.
Решение "в тупую", может и можно было по-элегантней сделать, но работает.
Выводит информацию по первой файловой системе в списке вывода команды df (по сути выводит результат этой команды).

Текст задания:
Напечатать информацию об одной из смонтированных файловых систем:
• К какому каталогу она подмонтирована
• Обьем в блоках и байтах
• Число свободных и занятых блоков
• % заполнения тома

Как решил:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    char cur;
    char buf[1024] = "";
    FILE *pp;
 
    int i = 0;
 
    if ( !(pp = popen("df", "r")) )
    {
        return 1;
    }
 
    for (i; i < 2; i++)
    {
        while ((cur = getc(pp)) != '\n')
        {
            sprintf(buf, "%s%c", buf, cur);
        }
        sprintf(buf, "%s\n", buf);
    }
 
    i = 0;
 
    printf("%s\n", buf);
 
    pclose(pp);
 
    if ( !(pp = popen("df -h", "r")) )
    {
        return 1;
    }
 
    buf[0] = 0;
 
    for (i; i < 2; i++)
    {
        while ((cur = getc(pp)) != '\n')
        {
            sprintf(buf, "%s%c", buf, cur);
        }
        sprintf(buf, "%s\n", buf);
    }
 
    printf("%s", buf);
 
    pclose(pp);
 
    return 0;
}
0
deleted
177 / 50 / 5
Регистрация: 29.03.2013
Сообщений: 365
18.08.2014, 10:55 4
Гениальное "решение" однако
0
437 / 308 / 97
Регистрация: 02.10.2008
Сообщений: 1,174
Записей в блоге: 1
18.08.2014, 11:48 5
Цитата Сообщение от Arioh002 Посмотреть сообщение
C
1
char buf[1024] = "";
Для "лабы" пойдёт, но как бы небыло переполнения
0
deleted
177 / 50 / 5
Регистрация: 29.03.2013
Сообщений: 365
24.08.2014, 18:46 6
Я просто оставлю это здесь http://linux.die.net/man/3/getmntent
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10908 / 6832 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
01.09.2014, 18:46 7
Если файл /etc/fstab присутствует и поддерживается (не какой-нибудь MacOS на букву Х), то всё просто:
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <fstab.h>
 
int main(void) {
    struct fstab * line;
    
    while ( line = getfsent() )
        printf("%s\t%s\t%s\n", line->fs_spec, line->fs_file, line->fs_vfstype);
    
    return 0;
}
0
Почетный модератор
7356 / 2620 / 275
Регистрация: 29.07.2006
Сообщений: 13,673
01.09.2014, 18:51 8
/etc/mtab
0
deleted
177 / 50 / 5
Регистрация: 29.03.2013
Сообщений: 365
01.09.2014, 22:56 9
В fstab вообще нет информации о смонтированых фс
В мтаб она может быть только при условии что сий файл есть симлинк на /proc/mounts, в противном случае надеется на актуальность его содержимого нельзя. Системные вызовы mount mount2 и umount его не обновляют, так что любая программа может спокойно примонтировать что-то и забить на мтаб + /etc может оказаться на r/o разделе, тогда и mount(8) его не обновит, есть даже опция для этого --no-mtab
0
Почетный модератор
7356 / 2620 / 275
Регистрация: 29.07.2006
Сообщений: 13,673
01.09.2014, 23:02 10
Цитата Сообщение от _1_ Посмотреть сообщение
сий файл есть симлинк на /proc/mounts
и не всегда именно на него.
Цитата Сообщение от _1_ Посмотреть сообщение
надеется на актуальность его содержимого нельзя.
В современном мире надеяться вообще ни на что нельзя
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10908 / 6832 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
02.09.2014, 01:08 11
Цитата Сообщение от easybudda Посмотреть сообщение
Если файл /etc/fstab присутствует
Цитата Сообщение от Vourhey Посмотреть сообщение
/etc/mtab
Ну да, это я "увлёкся"... Но в прочем в МакОси на букву Хэ и его нет...
Цитата Сообщение от _1_ Посмотреть сообщение
симлинк на /proc/mounts
а этой штуки тоже может и не быть...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2014, 01:08

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как получить доступ к файлам через сетевую папку (создать файлы в сетевой или просто получить список)?
Как получить доступ к файлам через сетевую папку (создать файлы в сетевой или просто получить...

Просмотр смонтированных разделов в системе
Вопрос конечно новичка, но всё же.... Просмотреть смонтированные разделы можно с помощью команды...

Список файловых систем
Всем привет, нужна помощь: получить список файловых систем смонтированных на компьютере в данный...

Как получить список всех запущенных приложений как в диспетчере задач?
Как получить список всех запущенных приложений как в диспетчере задач вкладка Приложения (Не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.