【问题标题】:what does "dead beef" mean?“死牛肉”是什么意思?
【发布时间】:2019-10-22 08:04:32
【问题描述】:

“死牛肉”这个词是什么意思?我是从一个面试问题中读到的。它与ipv6有关。我想这可能是一个随机的十六进制数字,例如“快速棕色狐狸跳过懒狗”。

我的理解正确吗?还是有更重要的意义?

【问题讨论】:

  • 对我来说这意味着午餐时间!
  • “DEADBEEF”可以追溯到几十年前,甚至可能在互联网出现之前。 (我想我在 70 年代后期在 IBM 使用它。)它只是一种标记方式,在十六进制转储中很容易看到,存储被释放或不被访问。
  • @HotLicks :确实,catb.org/jargon/html/D/DEADBEEF.html

标签: ipv6


【解决方案1】:

http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef

“死牛肉”是编程中非常流行的句子,因为它仅由字母 a-f 构成,这些字母以十六进制表示法使用。句子开头和中间的冒号使这句话成为(理论上)有效的 IPv6 地址。

【讨论】:

    【解决方案2】:

    由于 IPv6 地址是用十六进制表示法编写的,因此您可以在地址中使用“Hexspeak”(数字 0-9 和字母 a-f)。

    您可以使用许多单词作为有效地址来更好地记住它们。

    如果您ping6 www.facebook.com -n,您将得到类似“2a03:2880:f01c:601:face:b00c:0:1”的信息。

    这里有一些例子:

    • :affe:: (Affe - 德语为猴子 - 在管理委员会的 vlan 中看到)
    • :1bad:babe::(一个坏宝贝 - 在 smtp-honeypot 看到)
    • :badc:ab1e::(坏电缆 - 被视为不安全 vlan 的子网)
    • :da7a::(数据 - 用于文件服务器)
    • :d1a1::(拨号 - 用于 VPN 拨入)

    【讨论】:

      【解决方案3】:

      0xDEADBEEF 的值具有三个实际好处,主要针对较旧的系统。像我这样的老汇编程序/C hack 会使用它来填充未分配的内存以解决内存问题。此外,它是俚语“死肉”的双关语。如果 DEADBEEF 在他的指针中结束,程序员就是死肉。我祝贺第一个想到使用值 DEADBEEF 的人。它在很多方面都很聪明。

      出于实际原因,首先,它在十六进制内存转储中更明显,因为它实际上拼写单词而不是随机十六进制值。

      其次,如果值以指针形式结束,则更有可能引发内存超出范围错误。无论系统的字节序如何,DEADBEEF 的地址都超出了系统的地址范围(我们现在谈论的是上个世纪的系统)。

      第三,它更有可能在需要边界指针值来访问 16/32/64 位数据的系统上引发故障。该值更容易出错,因为这两个 16 位值(DEAD、BEEF)都是奇数。

      【讨论】:

        【解决方案4】:

        它被用作将一系列十六进制字节(0xde、0xad、0xbe、0xef)存储在内存中的模式。您可以查看内存是否由于硬件故障、缓冲区溢出等原因而损坏。

        【讨论】:

          【解决方案5】:

          这是仅使用字母 A-F 组成的表达式,通常在需要可识别的十六进制数字时使用。一些系统将它用于各种目的,例如显示已释放且不应再次引用的内存。在调试器中出现的这个值可能表明你犯了一个错误。来自Wikipedia

          0xDEADBEEF(“死牛肉”)被 IBM RS/6000 系统、32 位 PowerPC 处理器上的 Mac OS 和 Commodore Amiga 用作神奇的调试值。在 Sun Microsystems 的 Solaris 上,它标志着释放的内核内存。在 Alpha 处理器上运行的 OpenVMS 上,按 CTRL-T 可以看到 DEAD_BEEF。

          数字 0xDEADBEEF 等于不易识别的十进制数 3735928559(无符号)或 -559038737(有符号)。

          【讨论】:

          • 但是 55378008 倒置呢? (无符号)
          • 或者IPv4地址222.173.190.239!
          【解决方案6】:

          这是一个神奇的数字,在很多地方都使用过,因为它也恰好可以用英文阅读,使它脱颖而出。 Wikipedia 上有部分列表。

          【讨论】:

            【解决方案7】:

            它也用于调试目的。

            以下是其中一些值的方便列表:

            http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values

            【讨论】:

              【解决方案8】:

              人们通常用它来表示虚拟值。我认为它主要是在 NULL 指针的想法之前使用的。

              【讨论】:

              • DEADBEEF 通常用于标记已释放的内存,因此当您有一个悬挂指针 IIRC 时会很明显。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-08-12
              • 2017-06-11
              • 2018-03-05
              • 2023-03-27
              • 1970-01-01
              • 2013-03-09
              • 2020-05-01
              相关资源
              最近更新 更多