首页 存档 技术 查看内容

Android NDK 开发之旅 7--C 语言基础--IO

2018-3-30 13:00 |来自: 互联网 438 0

摘要: 1读写文本文件主要用到了 fgets 和 fputs 两个函数(函数名中的 s 是指 String,字符串的意思): _CRT_SECURE_NO_WARNINGS 用于 Visual Studio2013 编译去掉警告。 2读写二进制文件计算机的文件存储在物理上都是 ...


1

读写文本文件

主要用到了 fgets 和 fputs 两个函数(函数名中的 s 是指 String,字符串的意思):



_CRT_SECURE_NO_WARNINGS 用于 Visual Studio2013 编译去掉警告。


2

读写二进制文件

计算机的文件存储在物理上都是二进制,文本文件和二进制之分,其实是一个人为的逻辑之分。

C 读写文本文件与二进制文件的差别仅仅体现在回车换行符:

  1. 写文本时,每遇到一个 '\n',会将其转换成 '\r\n' (回车换行)。

  2. 读文本时,每遇到一个 '\r\n',会将其转换成 '\n'。

  3. 但是读写二进制文件的时候并不会做以上转换。

下面是二进制文件读写的例子(图片的复制):

主要用到了 fread 和 fwrite 两个函数:


注意
  1. 缓冲区用 int 类型的数组。

  2. 文件读写模式后面加上 b 代表读写二进制文件。


3

获取文件大小

主要用到了 fseek 和 ftell 函数:




4

文件加密、解密


用简单的异或运算进行加密,解密的话就是一个逆过程。

规则:1^1=0, 0^0=0, 1^0=1, 0^1=1 同为0,不同为1


二进制文件加解密


通过下面的代码进行加密。



其中:



二进制文件记得加上小 b,加密以后文件不能正常打开了,因为文件损坏了。

微信的数据库是加密的,用 C 语言(动态库 so 反编译很难)加密。不会用 Java 去做,因为安全性不够,Java 的反编译比较容易。

想往上发展,NDK、Linux 还是必须的。





本系列

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除


路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部