unix 如何区分’二进制’和’文本’文件?

2022年 10月 17日 发表评论
免费、便宜/高性价比 服务器汇总(已更新):点击这里了解

本站教程收集整理的这篇文章主要介绍了unix如何区分’二进制’和’文本’文件?,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。

非正式地,我们大多数人理解,有’二进制’文件(目标文件,图像,电影,可执行文件,专有文档格式等)和’文本’文件(源代码,XML文件,HTML文件,电子邮件等)。

一般来说,你需要知道一个文件的内容,以便能够做任何有用的事情,并形成这个观点,如果编码是’二进制’或’文本’,这并不重要。当然,文件只是存储字节数据,所以它们都是“二进制”和“文本”并不意味着什么,而不知道编码。但是,仍然有用的谈论’二进制’和’文本’文件,但为了避免违反任何人的这个不精确的定义,我会继续使用’scare’引号。

但是,有各种工具可以处理各种各样的文件,在实际情况下,您想根据文件是“文本”还是“二进制”来做不同的操作。一个例子是在控制台上输出数据的任何工具。纯文本’看起来很好,是有用的。 ‘二进制’数据混乱了你的终端,一般没有用看看。 GNU grep至少在确定是否应该输出与控制台匹配时使用此区别。

所以,问题是,你怎么知道一个文件是“文本”还是“二进制”?而进一步限制,你如何告诉一个像Linux的文件系统?我不知道任何文件系统元数据指示一个文件的’类型’,所以问题进一步变成,通过检查文件的内容,我如何判断它是’文本’还是’二进制’?为了简单起见,我们将“文本”限制为可在用户控制台上打印的字符。特别是你将如何实现这一点? (我认为这是隐含在这个网站,但我想这是有帮助的,一般来说,指向现有的代码,这样做,我应该指定),我不是真的可以使用现有的程序,这个。

我们的软件读取一些二进制文件格式以及文本文件。

我们首先看一下我们认识的magic number的前几个字节。如果我们不识别任何我们读取的二进制类型的幻数,那么我们查看文件的第一个2K字节,看看它是否似乎是一个UTF-8,UTF-16或在当前code page编码的文本文件的主机操作系统。如果它不通过这些测试,我们假定它不是一个我们可以处理的文件,并抛出一个适当的异常。

本站总结

以上是本站教程为你收集整理的unix如何区分’二进制’和’文本’文件?全部内容,希望文章能够帮你解决unix如何区分’二进制’和’文本’文件?所遇到的程序开发问题。

如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。

小咸鱼

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: