2014-02-11 3 views
-4

Я хочу написать программу, которая форматирует диск в новый формат (не NTFS или FAT32) и может читать и записывать на диск. Для этого у меня должен быть способ написать отдельные байты для диск (без создания файлов). Как мне это сделать?Как записать байты на диск в C?

EDIT: Я нашел this. Но я не уверен, что если использовать CreateFile(), как сказал Eli Bendersky в первом ответе (когда организован по порядку голосов), давайте писать один байт (или даже один бит) за раз, или вам нужно писать полные сектора вовремя.

Ответ: Так как я не могу ответить на вопрос, потому что он был закрыт, я отвечу на него, напишите здесь. Для этого вам не нужны функции API. Все, что вам нужно сделать, это открыть диск, как вы открываете любой другой файл. Например:

int hFile; 
hFile=open("/dev/sdb",0_RDWR); 
+0

Hi Isaac; Я подозреваю, что этот вопрос будет продолжать привлекать отрицательные голоса, прежде всего потому, что он не дает никаких примеров усилий (а именно, какую документацию вы читали, какой код вы пытаетесь и что знаете до сих пор.) Ваш лучший выбор это сделать некоторые поисковые запросы и посмотреть, что вы узнаете. –

+0

Windows будет препятствовать любому прямому аппаратного доступа к диску. Он хочет, чтобы вы использовали вызовы Win API для всего. Драйвер - это один из подходов, который будет работать, но это невероятно сложно написать. Вы можете попробовать использовать существующий: https://www.eldos.com/rawdisk/. Также рассмотрите этот вопрос: http://stackoverflow.com/a/8808596/656243 –

+0

Какие вызовы API я могу использовать? –

ответ

-2

Вы должны напрямую разговаривать с водителем, поскольку вы будете обходить файловую систему.

+0

Как написать драйвер? Есть ли специальная функция C для драйверов? –

+0

С каким драйвером моя программа должна разговаривать? –

+2

Уже приняты? Я не вижу, как этот ответ поможет любым будущим посетителям. – LittleBobbyTables

Смежные вопросы