| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Список томов/разделов/смонтированных устройств |
| Автор: andrew_121 6.6.2009, 16:15 |
| Здравствуйте! Подскажите. Как получить этот список? Кроме как парсить /etc/fstab. |
| Автор: MAKCim 6.6.2009, 16:36 |
| andrew_121, сделай strace -f df 2>log и увидишь, что парсится /etc/mtab |
| Автор: Pointer 6.6.2009, 16:42 |
| Парсить вывод команды mount без параметров. Или заглянуть в файлы fstab.h, mount.h. |
| Автор: MAKCim 6.6.2009, 17:53 |
| Автор: andrew_121 6.6.2009, 19:38 |
| Понятно. Всем спасибо! |
| Автор: andrew_121 6.6.2009, 20:52 | ||||
| Значит вот что у меня есть. /etc/fstab
/etc/mtab
Любопытен следующий момент. Как по UUID определить что за устройство? Надо посмотреть исходники df. |
| Автор: andrew_121 6.6.2009, 21:24 |
| Посмотрел Вот только как быть с UUID? Может кто знает? |
| Автор: andrew_121 7.6.2009, 01:13 |
| Значит партиции могут зваться /dev/hd** или /dev/sd**. Это все? Или еще как-то? CD-приводы, /dev/sc** или /dev/sr*. С последним не понятно. Проясните плиз. |
| Автор: Pointer 7.6.2009, 09:34 | ||||
Можно с blkid, примерно такой вывод.
|
| Автор: andrew_121 7.6.2009, 10:24 |
А их что, программа именует? Или юзер со злым умыслом? |
| Автор: MAKCim 7.6.2009, 10:37 |
по настройкам злого юзера программа |
| Автор: andrew_121 7.6.2009, 10:56 |
Ну допустим что таких мало. Я к примеру этим не занимаюсь. Это система как-то там настраивает Вот еще вопрос. По колонке type в /etc/fstab можно определить тип устройства, по типу ФС, так? Если да, то осталось найти список ФС поддерживаемых Линукс. И еще вопрос. А cd-rom бывают иного типа кроме iso9660? |
| Автор: andrew_121 7.6.2009, 11:16 |
| Может кто-то знает где есть хидер со списком ФС? |
| Автор: MAKCim 7.6.2009, 11:20 | ||
естественно
нет мы можем узнать MAJOR номер файла устройства а вот по MAJOR номеру можем узнать тип устройства Добавлено через 33 секунды список всех зарегистрированных драйверов ФС /proc/filesystems |
| Автор: andrew_121 7.6.2009, 11:39 | ||||
Нашел. Вот разделил их по категориям. Просьба поправить меня, если какой-то тип ФС не в нужной ему категории.
Добавлено @ 11:42 Ну подскажи
А это как? |
| Автор: MAKCim 7.6.2009, 13:07 |
| andrew_121, как можно сопоставлять файловой системе тип устройства? я могу iso образ к примеру прикрутить через loop или на instance ramfs что? берем первую строку из /etc/mtab и делаем stat по st_dev находим MAJOR номер и сравниваем с linux/major.h |
| Автор: andrew_121 7.6.2009, 13:40 | ||||||
Да. Но стандартный юзер этого делать не станет
Это понятно. Но хочется без вызовов системных функций. Кароче вот что у меня получилось. Жду критики/исправлений/дополнений.
|
| Автор: MAKCim 7.6.2009, 14:17 | ||
это очень плохая аргументация недетерминированность - это плохо ага хочется мороженного без молока open считается системной функцией? ;) 1. C++ 2.
к вопросу о краткости 3. замечание об универсальности |
| Автор: andrew_121 7.6.2009, 14:37 |
Согласен. Буду править. Согласен. Но мне для проги написанной на Кут. Не понял...? |
| Автор: MAKCim 7.6.2009, 16:36 |
в этом неуниверсальность |
| Автор: andrew_121 7.6.2009, 16:43 |
| Ааа... Буду развивать... |
| Автор: _GRIN_ 3.7.2009, 14:34 |
| andrew_121, если на твоей машине есть демоны udev, dbus и hal (как полагаю на 95% nix* систем), то я советую посмотреть в сторону hal-a. Всё делаю через него, включая различные уведомления об измененеии какого-либо параметра интересующего меня железа. Ссылочка на спецификацию: http://people.freedesktop.org/~david/hal-spec/hal-spec.html |
| Автор: andrew_121 4.7.2009, 10:26 |
| _GRIN_, Дело в том, что сей код, был так задуман. За ссылочку спасибо. Попрасвещаюсь. |
| Автор: Cheloveck 8.7.2009, 19:26 | ||||
По чистой случайности сейчас занимался тем же самым. Вот пример использования HAL
Это я тут сам разбирался, поэтому не всё красиво, но работает правильно! У меня показывает так
Там можно получить аналогичным способом любую информацию о дисках, разделах... да собственно обо всех устройствах. |
| Автор: andrew_121 9.7.2009, 00:52 |
| Cheloveck, Это понятно. Но сей код мне нужен для пользовательской программы написанной на Qt. Нет смысла привязывать ее к Hal. |
| Автор: Cheloveck 9.7.2009, 11:34 |
| andrew_121, моя программа тоже на Qt, но к HAL я всё же решил привязать, ибо удобно)) |
| Автор: andrew_121 9.7.2009, 17:54 |
| Cheloveck, Идеология Qt - кроссплатформенность! Hal ее нарушает. |