@aldexnotproger

Как работать с секторами носителя напрямую в C?

Мне стало интересно, как я могу получить доступ к ячейкам памяти жесткого диска или другого носителя, например, USB flash накопителя с помощью языка C, что-то вроде "0xffffff = a".
Я уже минут 30 копаюсь в интернете и ничего пока не нашел. Как-то же пишут низкоуровневые программы для восстановления файлов, например.

Я понимаю, что во многом еще ничего не понимаю, но думаю, что у вас есть хоть какое-то понимание вопроса.
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 4
@pfg21
ex-турист
читать и писать напрямую в /dev/sd* и иже с ними :) глубже смысла большого нет.
дальше начинается драйверные заморочки, которые могут быть уникальны для каждого носителя.
плюс все равно напрямую к "железным" секторам все равно доступ не получишь. сейчас даже в носителе есть прослойка абстракции от железа. через нее, к примеру, перемапливают сбойные сектора в винчестерах или распыляют нагрузку записи по разным ячейкам в флешках и т.д. и т.п.
пишут ребята, которые упорно изучали низкоуровненвые операции в течении долгих лет, которые закупали документацию у производителей, которые нарабатывали кучу опыта из прикладных проблем, которые убили кучу железа в экспериментальных тестах и т.д. и т.п.
Ответ написан
firedragon
@firedragon
Senior .NET developer
В общем то все абстракция. Причём ос это не первый уровень. Вы отсылаете сигнал и драйвер что то делает или не делает. Формально вы можете нырнуть чуть ниже ос, но контроллер может это принять или нет.
Ответ написан
@lonelymyp
Живу
Если коротко, то никак.
Стоит подробней описать задачу, что именно хочется писать на диск из за чего возникло аткое желание.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
JetBrains Санкт-Петербург
от 200 000 ₽
Verme Москва
от 120 000 ₽
AGIMA Москва
До 160 000 ₽
28 сент. 2020, в 00:10
15000 руб./за проект
27 сент. 2020, в 21:54
15000 руб./за проект