二进制安全

背景:

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

正文:
      先来段维基百科的解释:
      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等等

转载于:https://my.oschina.net/u/2001857/blog/534985

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值