【发布时间】:2016-02-25 00:46:09
【问题描述】:
我现在正在使用 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 文件仅显示复制的字节(无文本)。
任何建议将不胜感激!
【问题讨论】:
-
提供MCVE。如果没有看到您如何在
buffer中创建数据,我们就无法判断出了什么问题。 -
或者你的意思只是将字节复制为字节?比如说,
putc(buffer[index], file); -
@MikeCAT 谢谢你!那成功了!现在 PDF 文件实际复制为 pdf,.txt 文件复制为实际 .txt 文件。那么这里有什么不同呢? putc 如何以不同的方式将字节注入文件?我这样做的方式是在文件中插入字符串吗?
标签: c file fat file-pointer diskimage