Я сейчас работаю в C, и я читаю образ диска, который использует систему FAT12. В командной строке я принимаю имя файла для копирования из образа диска в локальную папку. Вот мой вопрос, когда я просматриваю все байты, которые мне нужно извлечь для конкретного файла, который я буду копировать в локальную папку, какие функции следует использовать для записи этих байтов в мой локальный файл?Как скопировать файл с образа диска?
Кстати, файлы, которые должны быть скопированы с диска может быть PDF, TXT и т.д.
В настоящее время, я использую ниже, чтобы открыть (создать) файл локально, а затем ниже, чтобы писать байты в этот файл (эта функция там, где я думаю, что проблема). Существует намного больше кода, который фактически проходит через байты в FAT12, но мне просто нужно знать, что я делаю неправильно во время записи :
FILE *file = fopen(arg[2],"wb"); //To create the file on the local folder
fprintf(file,"%#04x ",buffer[index]); //Write a byte from the file that is being copied to the local file from the disk image
Мой код отлично работает относительно получения соответствующих байтов из файлов, которые я копирую, но по какой-то причине, .PDF файлы не open, а файлы .txt отображают только скопированные байты (без текста).
Любой совет будет рад!
Предоставьте [MCVE] (http://stackoverflow.com/help/mcve). Мы не можем сказать, что не так, не видя, как вы создаете данные в 'buffer'. – MikeCAT
Или, может быть, вы имеете в виду просто скопировать байты в виде байтов? скажем, 'putc (buffer [index], file);' – MikeCAT
@MikeCAT СПАСИБО ЧЕЛОВЕК! это сделал трюк! теперь файл PDF фактически копируется как PDF-файл, а файлы .txt копируются как фактические .txt-файлы. Так в чем разница? как putc ввел байт в файл по-разному? был способ, которым я делал это вставку строки в файл? – Vimzy