自己在 VS 中开发一个应用程序,对家存储存放的 KEY 文件进行加密;
那么,读取文件的时候,打开文件如下:
FILE* fp_in = fopen("ssk_key", "r");
//========================================================================
那么,在调试的时候,总是发现读取文件不完整;例如,文件有 900 个字节;
使用 fread() 读取的时候,读取到 100 个字节,fread() 函数就返回 0,表示读取完;
//========================================================================
但是,文件确实是有 900 个字节;为何没有读取完呢?
在调试的是,发现,读取的到的数据,末尾总是 \r\n,就是一个回车换行符;
//========================================================================
那么,此时自己推理:可能是 fread() 碰到 \r\n 就认为文件结束了;
这是因为,我们在打开文件的时候,参数是 "r",是把文件作为一个“文本文件”来看待操作;
//========================================================================
但是,存放 KEY 的文件,是一个二进制文件;
所以,应该以 二进制 的形式打开文件,如下:
FILE* fp_in = fopen("ssk_key", "rb");
这样就可以读取完整一个文件的数据;
//========================================================================
只需要99元就可以投资自己,掌握Linux系统编程!主要传授《Linux C/C++程序设计》《Linux 系统编程》,主页有学习视频!
只需要99元就拥有全部课程和资料,让我们用技术改变自己,改变生活,改变世界!
视频可以百度搜索:韦凯峰Linux编程学堂
//========================================================================