Russian Qt Forum
Мая 15, 2025, 18:41
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Общий
>
Как используя Qt узнать какие существуют диски и их разделы в linux?
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как используя Qt узнать какие существуют диски и их разделы в linux? (Прочитано 18420 раз)
Андрей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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...