Russian Qt Forum
Ноябрь 23, 2024, 07:24
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Общий
>
Как используя Qt узнать какие существуют диски и их разделы в linux?
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как используя Qt узнать какие существуют диски и их разделы в linux? (Прочитано 17992 раз)
Андрей80
Гость
Как используя Qt узнать какие существуют диски и их разделы в linux?
«
:
Август 03, 2010, 15:47 »
Здравствуйте.
Используя Qt::drives() получаю список дисков в системе linux ubuntu.
Как и обещали разработчики библиотеки (QDir::Drives 0x004 List disk drives (ignored under Unix)), особенно много получить не удалось. Но наверняка решить проблему возможно, подскажите пожалуйста, кто сталкивался.
Как можно получить список разделов своего жесткого диска?
Записан
crossly
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #1 :
Август 03, 2010, 15:51 »
/proc/partitions
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #2 :
Август 03, 2010, 15:51 »
Запускать и парсить вывод утилит типа cfdisk, fdisk и т.п. или еще как нибудь. Парсить устройства в /dev например... Вариантов уйма.
---
Упс.. опередили
Вот еще ссылка:
http://xmelegance.org/kparted/index.html
- там используется библиотека libparted
«
Последнее редактирование: Август 03, 2010, 15:54 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
crossly
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #3 :
Август 03, 2010, 16:15 »
для использования cfdisk, fdisk нужны права root....
Записан
Silentium
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #4 :
Август 01, 2012, 20:21 »
Цитата: crossly от Август 03, 2010, 16:15
для использования cfdisk, fdisk нужны права root....
Да нет на fdisk -l обычных прав должно хватить с избытком
ну а дальше тупо пишем скрипт
fdisk -l| awk '/Disk||Диск/ {print($1 " " $2 " "$3)}'
Записан
andrew.k
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #5 :
Август 01, 2012, 23:13 »
Цитата: Silentium от Август 01, 2012, 20:21
Цитата: crossly от Август 03, 2010, 16:15
для использования cfdisk, fdisk нужны права root....
Да нет на fdisk -l обычных прав должно хватить с избытком
ну а дальше тупо пишем скрипт
fdisk -l| awk '/Disk||Диск/ {print($1 " " $2 " "$3)}'
у меня fdisk -l требует права рута. Значит везде по-разному.
а вот на чтение /proc/partitions прав точно должно хватить.
а преимуществ вызова fdisk нет, скорее наоборот медленнее будет.
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #6 :
Август 01, 2012, 23:53 »
Цитата: andrew.k от Август 01, 2012, 23:13
у меня fdisk -l требует права рута. Значит везде по-разному.
круто, это где так?
Записан
Fat-Zer
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #7 :
Август 02, 2012, 01:30 »
для fdisk -l нужны права на чтение /dev/sd? . обычно для этого пользователю нужно быть в группе disk или block. и если он лежит в /sbin, то само собой надо полный путь указать...
ещё есть Ъ способ: запросить всю эту информацию у udev'а (то есть udisks) через dbus. см. доки по оному...
если надо, у меня где-то был на c/glib пример с получением списка дисков...
«
Последнее редактирование: Август 02, 2012, 01:35 от Fat-Zer
»
Записан
DmitryM
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #8 :
Август 02, 2012, 07:37 »
а как насчет чтение /etc/mtab ?
Человеку ведь нужен список точек монтирования устройств.
Записан
Silentium
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #9 :
Август 02, 2012, 08:21 »
Цитата: DmitryM от Август 02, 2012, 07:37
а как насчет чтение /etc/mtab ?
Человеку ведь нужен список точек монтирования устройств.
Не вариант, в mtab уже об смонтированных. А если программа предполагает монтирования, там для нее данных не будет
Записан
Silentium
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #10 :
Август 02, 2012, 08:28 »
Цитата: andrew.k от Август 01, 2012, 23:13
Цитата: Silentium от Август 01, 2012, 20:21
Цитата: crossly от Август 03, 2010, 16:15
для использования cfdisk, fdisk нужны права root....
Да нет на fdisk -l обычных прав должно хватить с избытком
ну а дальше тупо пишем скрипт
fdisk -l| awk '/Disk||Диск/ {print($1 " " $2 " "$3)}'
у меня fdisk -l требует права рута. Значит везде по-разному.
а вот на чтение /proc/partitions прав точно должно хватить.
а преимуществ вызова fdisk нет, скорее наоборот медленнее будет.
Да ваш метод удобен, единственное, ручками размер в человеческий вид придется переделывать
Записан
DmitryM
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #11 :
Август 02, 2012, 09:30 »
Цитата: Silentium от Август 02, 2012, 08:21
Цитата: DmitryM от Август 02, 2012, 07:37
а как насчет чтение /etc/mtab ?
Человеку ведь нужен список точек монтирования устройств.
Не вариант, в mtab уже об смонтированных. А если программа предполагает монтирования, там для нее данных не будет
Это правильный вариант, т. к. QDir::drives ()
Цитировать
On Windows this returns a list of QFileInfo objects containing "C:/", "D:/", etc
Если устройство подключено, то его всегда можно найти в /dev
Записан
Silentium
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #12 :
Август 02, 2012, 10:07 »
Цитата: DmitryM от Август 02, 2012, 09:30
Цитата: Silentium от Август 02, 2012, 08:21
Цитата: DmitryM от Август 02, 2012, 07:37
а как насчет чтение /etc/mtab ?
Человеку ведь нужен список точек монтирования устройств.
Не вариант, в mtab уже об смонтированных. А если программа предполагает монтирования, там для нее данных не будет
Это правильный вариант, т. к. QDir::drives ()
Цитировать
On Windows this returns a list of QFileInfo objects containing "C:/", "D:/", etc
Если устройство подключено, то его всегда можно найти в /dev
Абсолютная ваша правда, если программа предполагает, что все уже смонтированно. Иначе мы возвращаемся к /proc/partition fdisk, ну или парсить директорию /dev. Но как ее парсить если сборщик определил имена дисков не как стандартные sd??, а по другому ?
Записан
andrew.k
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #13 :
Август 02, 2012, 10:09 »
Цитата: Silentium от Август 02, 2012, 10:07
Цитата: DmitryM от Август 02, 2012, 09:30
Цитата: Silentium от Август 02, 2012, 08:21
Цитата: DmitryM от Август 02, 2012, 07:37
а как насчет чтение /etc/mtab ?
Человеку ведь нужен список точек монтирования устройств.
Не вариант, в mtab уже об смонтированных. А если программа предполагает монтирования, там для нее данных не будет
Это правильный вариант, т. к. QDir::drives ()
Цитировать
On Windows this returns a list of QFileInfo objects containing "C:/", "D:/", etc
Если устройство подключено, то его всегда можно найти в /dev
Абсолютная ваша правда, если программа предполагает, что все уже смонтированно. Иначе мы возвращаемся к /proc/partition fdisk, ну или парсить директорию /dev. Но как ее парсить если сборщик определил имена дисков не как стандартные sd??, а по другому ?
В директории /dev могут быть все возможные устройства, а не только подключенные на данный момент.
Записан
DmitryM
Гость
Re: Как используя Qt узнать какие существуют диски и их разделы в linux?
«
Ответ #14 :
Август 02, 2012, 11:19 »
Цитата: Silentium от Август 02, 2012, 10:07
Абсолютная ваша правда, если программа предполагает, что все уже смонтированно. Иначе мы возвращаемся к /proc/partition fdisk, ну или парсить директорию /dev. Но как ее парсить если сборщик определил имена дисков не как стандартные sd??, а по другому ?
Ты много видел систем, где именуется не по стандарту? Да и /proc/partition fdisk не покажет usb, cdrom, floppy.
Цитировать
В директории /dev могут быть все возможные устройства, а не только подключенные на данный момент.
Через тот же udev можно удалить устройство из /dev.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...