从零开始创造自己的二进制封包文件-第二讲-文件拼接与读取(理论)

 

由于我们把不同的文件合并成了一个文件,因为二进制文件的特殊性,当我们用编程语言对合并中的文件进行逐字节读取时,并不知道某个段落的文件数据在第几个字节结束所以我们需要文件索引头,它就像现实文学书的目录。(类比)

对于已经塞入文件的png或ogg二进制数据需要使用第三方开源库进行解码,这对于新手来说比较困难(可能需要自己编译),所以我们这里用纯文本来组成图案,然后用printf()来处理。

下面我们开始设置文件索引目录(伪代码部分)(c语言)

struct file_index
{
 uint64_t file_count;//合并后的文件里共包含几个文件
 char[256] file_name;//有几个文件
 uint64_t file_size;//文件大小
 uint64_t file_offest;//偏移
};

此时我们的文件

package.c是用于打包文本和图像(纯文本表示图案)。

main.c是用于在运行时解码的,image.txt这里使用6当作像素点。

图像:0 7

666 666
6 6  6
666  6

这个图案是0 7。

在package.c读取所有txt文件内容,并先写入文件头索引,再写入文件体,在main.c解码就行了,

这里就不给出代码了,懂这个原理一通百通,你还可以给自定义格式加密,防止他人破解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值