您的位置:首页 > 其它

二进制安全

2015-11-24 00:00 176 查看
摘要: 二进制安全的个人理解

背景:
今天同事在群里,抛出此问题。咋一看,很是奇怪,从来没听说过二进制安全的概念。仔细回想了下,又似曾相识,但实在又想不起来,这个到底是个啥东东。故再次借助网络,为了加深记忆及方便查找。特记录!

正文:

先来段维基百科的解释:

Binary-safe
is a
computer programming
term mainly used in connection with
string
manipulating
functions
. A binary-safe function is essentially one that treats its input as a raw stream of data without any specific format. It should thus work with all 256 possible values that a character can take (assuming
8-bit
characters)

意思大概是(网摘):

二进制安全是一种主要用于字符串操作函数相关的计算机编程术语。一个二进制安全功能(函数),其本质上将操作输入作为原始的、无任何特殊格式意义的数据流。其在操作上应包含一个字符所能有的256种可能的值(假设为8为字符)。

从上面这段话来看,意思就是对于每个字符都公平对待,不特殊处理某一个字符,没有特供水,没有特供大米,大家都是一样一样滴!这么看来二进制安全应该描述的是一种行为,而不是一种属性。那说 string 是二进制安全,个人认为应该理解为,string相关的操作是二进制安全的,

为了巩固理解,举一个反例吧:

C语言中字符指针就不是二进制安全的,因为他会认为\0为结束符。也就说他没有公平对待每一个字符,特例化了\0.故它相关的操作都不是二进制安全的。比如strlen、strcpy等等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: