c – 文件二进制文本与文本

是否有一些情况我不得不喜欢二进制文件到文本文件?我用C作为编程语言?

例如,如果我要存储一些大文本文件,最好是使用文本文件还是二进制文件

编辑

目前的文件没有要求人类可读的要求.有些性能差异,安全性差异等等?

编辑

很抱歉省略其他要求(感谢Carey Gregory)

>要保存的记录是ascii编码
>文件必须加密(AES)
>机器可以随时关机.所以我要尽力防止错误.
>我想知道文件是否在程序之外更改,我想我将使用该文件的sha1摘要.

解决方法

作为一般规则,定义文本格式并使用它.这很多
更容易开发和调试,更容易看到是什么
如果它不起作用就会出错.

如果您发现文件变得太大,或者接受了
通过电线传输的时间很长,考虑压缩它们.
压缩文本文件通常比您可以使用的文件
二进制文件.或者考虑一种不那么冗长的文本格式;这是可能的
用于可靠地传输数据的文本表示
XML使用的字符少得多.

最后,如果你最终不得不使用二进制文件,请尝试选择
现有格式(例如Google的协议块),或基于您的格式
现有格式的格式.请记住:

>实际上,Binary比文本更多的工作
必须写所有的<<操作符再次,包括那些
在标准库中.
>二进制文件调试起来要困难得多,因为你不能
很容易看到你实际做了什么.

关于你的上次编辑:

>加密后,结果将是二进制的.您可以使用二进制文件的表示形式(base64或其他一些),但结果不会比二进制更可读,所以这不值得打扰.如果您正在加密,在写入磁盘之前,您会自动丢失所有内容文字的优点.>关闭电源的问题意味着您无法使用直接的.您必须使用以下命令打开或创建文件完整事务完整性的必要选项(O_SYNC as在Unix下打开的标志).您必须将每条记录都写为对系统的单个写请求.>为了以防万一,有一个校验和总是一个好主意.如果你担心安全问题,SHA1是个不错的选择.但保持请记住,如果有人有权访问该文件,并且想要故意改变它,他们可以重新计算SHA1和也插入新值.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...