Я хочу написать программу, которая форматирует диск в новый формат (не NTFS или FAT32) и может читать и записывать на диск. Для этого у меня должен быть способ написать отдельные байты для диск (без создания файлов). Как мне это сделать?Как записать байты на диск в C?
EDIT: Я нашел this. Но я не уверен, что если использовать CreateFile(), как сказал Eli Bendersky в первом ответе (когда организован по порядку голосов), давайте писать один байт (или даже один бит) за раз, или вам нужно писать полные сектора вовремя.
Ответ: Так как я не могу ответить на вопрос, потому что он был закрыт, я отвечу на него, напишите здесь. Для этого вам не нужны функции API. Все, что вам нужно сделать, это открыть диск, как вы открываете любой другой файл. Например:
int hFile;
hFile=open("/dev/sdb",0_RDWR);
Hi Isaac; Я подозреваю, что этот вопрос будет продолжать привлекать отрицательные голоса, прежде всего потому, что он не дает никаких примеров усилий (а именно, какую документацию вы читали, какой код вы пытаетесь и что знаете до сих пор.) Ваш лучший выбор это сделать некоторые поисковые запросы и посмотреть, что вы узнаете. –
Windows будет препятствовать любому прямому аппаратного доступа к диску. Он хочет, чтобы вы использовали вызовы Win API для всего. Драйвер - это один из подходов, который будет работать, но это невероятно сложно написать. Вы можете попробовать использовать существующий: https://www.eldos.com/rawdisk/. Также рассмотрите этот вопрос: http://stackoverflow.com/a/8808596/656243 –
Какие вызовы API я могу использовать? –