2010-05-25 21 views
77

「死牛肉」這個詞是什麼意思?我從面試問題中讀到它。它與ipv6有關。我想它可能是一個隨機的十六進制數字,例如「快速的棕色狐狸跳過懶惰的狗」。「死牛肉」是什麼意思?

我的理解是否正確?或者它有更重要的意義?

+49

對我來說,這意味着午餐時間! – FrustratedWithFormsDesigner 2010-05-25 18:11:57

+3

「DEADBEEF」可以追溯到幾十年,甚至可能在互聯網之前。 (我想我是在70年代後期在IBM使用它的)。這只是一種標記方式,以十六進制轉儲方式很容易看到的方式進行標記,存儲被取消分配或以其他方式不被訪問。 – 2014-07-11 17:10:06

+0

@HotLicks:實際上,http://www.catb.org/jargon/html/D/DEADBEEF.html – 2016-10-25 12:13:15

回答

89

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

「死牛肉」是在編程非常流行的一句話,因爲它是從字母A-F,這是在十六進制表示只使用內置。在句子的開頭和中間冒號使這個句子成爲一個(理論上)有效的IPv6地址。

+37

以確保即使在鏈接的網站不再存在之後答案仍然存在。維基百科總是在變化,並且由於不同的原因([孩子]色情/「錯誤的」事實)在某些國家被阻止。所以最好讓你的答案獨立,只使用鏈接進行詳細的答案/引文。只是我的兩分錢。 – josefx 2010-05-25 18:35:45

3

人們通常用它來表示虛擬值。我認爲它主要是在NULL指針之前使用的。

+4

DEADBEEF通常用於標記釋放的內存,所以當你有一個懸掛指針IIRC時它會很明顯。 – Chuck 2010-05-25 18:14:58

2

這是在不同的地方使用,因爲它也恰好是英文讀一個神奇的數字,使它脫穎而出。在Wikipedia上有部分列表。

40

這是一個只用字母A-F組成的表達式,當需要一個可識別的十六進制數時經常使用。一些系統將其用於各種目的,例如顯示已被釋放的內存並且不應該再次被引用。在調試器中,此值顯示可能表示您發生了錯誤。從Wikipedia

0xDEADBEEF( 「死的牛肉」)用於由IBM RS/6000系統,Mac OS上的32位PowerPC處理器和准將Amiga的作爲魔術調試值。在Sun Microsystems的Solaris上,它標記釋放的內核內存。在運行在Alpha處理器上的OpenVMS上,按CTRL-T可以看到DEAD_BEEF。

數0xDEADBEEF等於少識別十進制數3735928559(無符號)或-559038737(簽字)。

+19

但55378008倒過來呢? (無符號) – mVChr 2010-05-25 19:18:30

1

它被用作模式在內存中存儲爲一系列十六進制字節(0xde,0xad,0xbe,0xef)。你可以看到,如果記憶是由於硬件故障,緩衝區溢出等

-2

0xDEADBEEF一般裝在存儲器陣列,使任何異常錯誤地指出或知道了運行等緩衝時損壞,

+0

這種觀點遠非那種認爲每個人都會期望自己沒有問題並且可能是對的但沒有證據使其令人難以置信的觀點。 – shalomb 2018-02-07 16:37:01

25

的0xDEADBEEF的值有三個實際的好處,主要用於較老的系統。與我一樣,舊的彙編程序/ C黑客會使用它來填充未分配的內存以解決內存問題。此外,這是俚語「死肉」的雙關語。如果DEADBEEF在他的指針中出現的話,程序員是死的。我向那些首先想到使用DEADBEEF價值的人表示祝賀。它在很多方面都很聰明。

至於實際的原因,首先,它在十六進制內存轉儲中更明顯,因爲它實際上是拼寫單詞而不是隨機十六進制值。其次,如果數值在指針中出現,則更可能引發內存超出範圍的錯誤。DEADBEEF的地址超出了系統的地址範圍(我們現在正在討論上個世紀的系統),而不管系統的endian。

第三,更容易在需要偶數邊界指針值訪問16/32/64位數據的系統上引發故障。由於16位值(DEAD,BEEF)都是奇數,所以該值更可能出錯。

+0

這是我讀過的最有趣的答案之一。謝謝@BSalita! – 2018-03-06 16:36:11

11

由於IPv6-Adresses是以十六進制表示法編寫的,因此可以在Adresses中使用「Hexspeak」(數字0-9和字母a-f)。

有很多單詞可以用作有效的地址,以便更好地使用它們。

如果你ping6 www.facebook.com -n你會得到類似「2a03:2880:f01c:601:face:b00c:0:1」。

下面是一些例子:

  • :AFFE ::(是Affe - 德國的猴子 - 在一個VLAN看到了管理委員會)
  • :1bad:貝貝::(一個壞的寶貝 - 在可見一個SMTP-蜜罐)
  • :BADC:ab1e ::(壞電纜 - 被視爲子網的VLAN不安全)
  • :da7a ::(數據 - 看到了文件服務器)
  • :d1a1 ::(撥號 - 見於VPN撥入)