|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
||||||
Получение имени съемного накопителя20.12.2018, 12:01. Показов 2807. Ответов 45
Метки нет (Все метки)
Доброго дня всем! Не знал в каком разделе написать. Знаний в области Линукса мало...
Мне необходимо написать простую программу, начал на Сишарпе. Для отлова событий изменения ядра использую udev API. Вызываю сишные методы. Я вот не пойму, правильно - ли я выбрал направление с работой через udev? У меня с горем пополам получилось получить событие action (add/remove), но как получить имя я не знаю. Флешка у меня распознается как dev/sda, вторая как /dev/sdb Путь в syspath = "/sys/devices/soc0/soc/2100000.aips-bus/2184000.usb/ci_hdrc.0"/ Все это дело автомонтируется в /media/usb0-usb7. Ломаю голову, как же получить имя диска? Нашел простой пример, но я так понимаю что он не даст мне имя по типу /dev/sda или /mount/usb
В общем, запутался. Прошу помощи именно в теории, как правильно сделать и какой инструмент ОС задействовать. ПС: Сделал так же вариант хардкода, когда имя внешнего накопителя константное, так как использую только 1 порт usb (/media/usb1), но вдруг с системой что станет и имя изменится...
0
|
||||||
| 20.12.2018, 12:01 | |
|
Ответы с готовыми решениями:
45
Определение буквы съемного диска(флэшки) по имени или серийному номеру (без WMIC). Простой способ Получение имени панели
|
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 20.12.2018, 12:41 | |
|
0
|
|
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
||
| 20.12.2018, 12:46 [ТС] | ||
По идее devnode это и есть имя устройства?
0
|
||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 20.12.2018, 12:51 | |
|
1
|
|
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
|
| 20.12.2018, 12:58 [ТС] | |
|
Я получаю имя /dev/sda и тд... Это то что нужно...
0
|
|
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
||||||
| 21.12.2018, 13:42 [ТС] | ||||||
|
Вернусь к данному вопросу. На данный момент все работает. Но меня терзают смутные сомнения по данному примеру! Если смотреть исходник, то опрос устройств происходит в вечном цикле с задержкой
И как она выходит из бесконечного цикла?
0
|
||||||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 21.12.2018, 14:04 | |
|
Ответы Да и никак
![]() Это же просто пример, печатая точку они показывают "все работает - вставь устройство"... Вопрос не задан, но предполагаю, что вам нужен NULL последним параметром у select(), ну или просто не нулевой таймаут.
0
|
|
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
|
| 21.12.2018, 14:06 [ТС] | |
|
0
|
|
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 21.12.2018, 14:11 | |
|
поллинг смениться на ожидание (вечное в случае NULL) события в течении таймаута. man select/poll/epoll
1
|
|
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
||||||
| 21.12.2018, 14:40 [ТС] | ||||||
|
А если select изменить на
0
|
||||||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 21.12.2018, 14:50 | |
|
Лучше, просто скажите, какого поведения хочется добиться в итоге
А то может надо просто блокироваться в udev_monitor_receive_device() и никакие мультиплексоры вообще не нужны...
0
|
|
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
||
| 21.12.2018, 15:07 [ТС] | ||
|
0
|
||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
||||||
| 21.12.2018, 15:20 | ||||||
|
Как-то так:
0
|
||||||
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
|
| 21.12.2018, 15:23 [ТС] | |
|
Ну вылетим из цикла, а запускать потом вручную ведь. Интересно, можно ли ловить именно ивент при изменении, что бы не гонять в цикле, или это только о D-bus?
0
|
|
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 21.12.2018, 15:29 | |
|
Вылетели из цикла == ошибка на сокете или мусор в данных - остается только сдохнуть.
Прочитали что-то из сокета = произошло одно из событий на которые вы подписались.
0
|
|
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
||
| 21.12.2018, 15:38 [ТС] | ||
|
Спасибо за советы! Скажите пожалуйста, почему прут эти ошибки, когда я дергаю флешку.
0
|
||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 21.12.2018, 15:43 | |
|
Код нужен...
0
|
|
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
|||||||||||
| 21.12.2018, 15:44 [ТС] | |||||||||||
|
Код на Шарпе написан... Если есть смысл, я скину. Это происходит при вызове
0
|
|||||||||||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|
| 21.12.2018, 16:01 | |
|
Походу, кто-то (сама libudev/шарп/кто-еще) ставит O_NONBLOCK на сокет. Варианты: снять флаг, вернуть poll/select
1
|
|
|
89 / 77 / 38
Регистрация: 11.10.2015
Сообщений: 860
|
||
| 21.12.2018, 17:56 [ТС] | ||
|
В общем я поковырялся и прочитал вот такое в коде библиотеки.
Подскажите еще такой момент. Я работаю через udev, что будет, если я выключу комп с флешкой. А когда система запустится имя флешки не будет видно (/dev/sda или /dev/sdb)? Добавлено через 5 минут Что вообще дает блокировка?
0
|
||
| 21.12.2018, 17:56 | |
|
Помогаю со студенческими работами здесь
20
Получение имени каталога
Получение имени окна Получение имени файла получение имени по ip из dyndns Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|