Консультация № 140995
29.07.2008, 17:30
0.00 руб.
0 4 0
Привет всем спецам и не очень!
Решил попробовать программитьв линух, поставил Ubuntu.
Надо одну прогу написать, наверное лучше всего на Си.
Прошу совета по решению вот какой задачи.
К системе будут подключаться различные HDD. Как научиться распознавать подключен он или нет, а потом научиться монтировать на него файловую систему, форматировать и потом писать на этот диск, желательно в нужные сектора. Кстати не мешалобы уметь определять сколько этих секторов и т.п.
Может кто подскажет куда копать, с чего начинать, какие книжки читать. Чтоб идти не кругами, а по прямой.
Пример кода - так это вообще почти счастье :-)
Небольшой опыт программирования на Си вроде есть

Обсуждение

Неизвестный
16.09.2008, 01:06
общий
Добрый вечер.
Я, конечно, в последнее время не занимался системным программированием под юникс, но могу посоветовать тебе следующие идеи (всё равно других нет)
- для подключения различных hdd тут может быть неск. вариантов: либо ты подключил диск на выключенный компьютер (тогда вопрос отпадает) либо подрубил usb устройство (флешка или винт). то в этом случае ядро автоматически определяет что к ней подключено, на это отвечает gnome-mount пакет. Возможно тебе стоит посмотреть какой-нибудь сигнал.
(но в похожего рода утилите я просто видел кнопку - refresh, которая помогла бы тебе избежать этого, а просто осуществлять пересмотр всех подключённых устр-в)
- для монтирования на него ф/с тебе стоит просто создать временную папку и смонтировать в неё. либо позволить гному самому это сделать.
- любая работа с витом: форматирование, запись на диск... всё это реализовано в gparted. посмотри этот пакет и его исходники. очень удобная вещь и довольно проста в изучении (я об исходниках). я сам просто изучаю libgtkmm и мне была она интересна. там ты найдёшь ответы на свои первые вопросы
- по-поводу записи в сектора, опять таки может пригодится исходних fdisk но я думаю он оч. сложен в понимании, потому попробовать могу предложить тебе сперва просто считать с устройства /dev/sdX[n] мне кажется раз эти устройства доступны для dd значит и записать в них можно напрямую.
- кол-во секторов я думаю тебе поможет тот же gparted. я например сейчас вызвал команду dmesg и получил число секторов так:
[ 32.448938] sd 0:0:0:0: [sda] 160836480 512-byte hardware sectors (82348 MB)
может быть тебе это пригодится для размышлений (а может быть эта информация содержится в /proc каталоге где-нибудь)

Вот думаю собстсвенно всё, что я могу предложить. В своё время у меня была задумка сделать программу на подобие WinHex для линукса для работы с ж/д. но что-то нет вдохновения и пока это так. одни мысли.
Удачи Вам, в Вашей, так сказать "одной программе" :)
Неизвестный
16.09.2008, 09:48
общий
Огромное спасибо за конструктивный ответ!! надеюсь активно буду его использовать
Устройства будут подключаться на выключенном компе, так что с определением подключения вроде понятно и особых проблем нет. Надо вот пакет gparted скатать где-то
А где оценку поставить?
Неизвестный
16.09.2008, 18:00
общий
да походу нигдеэто ведь форум. а ветку экспертов я решил включить вчера. так что может потом когда спросишь - поставишь.
гпартед лежит тут: http://gparted.sourceforge.net
есть ещё КДЕшный проект kparted, но я его не ковырял - не фанат КДЕ. но там возможно настроек будет больше.
Всегда пожалуйста.
Неизвестный
16.09.2008, 18:20
общий
поставил на закачку. Не слабый пакет однако!. А что он вообще делает, для чего создан. надеюсь там внутри есть нелпик?
Форма ответа