-1

私は現在 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ファイルが開かず、.txtファイルにはコピーされたバイトのみが表示されます(テキストは表示されません)。

どんなアドバイスでも大歓迎です!

4

1 に答える 1

0

これについては、MikeCAT に大いに感謝します! したがって、ディスク イメージからローカル フォルダにファイルをコピーしようとするときは、コピーするファイルの特定のバイトを、コピーを受け取るファイルに挿入するときはいつでも、次のようにします。

putc(buffer[index], file);

これではない:

fprintf(file,"%#04x ",buffer[index]);

上記は、バイトを文字列としてファイルにコピーします。

于 2015-11-23T00:56:33.250 に答える