O que significa a palavra "carne morta"? Eu li em uma pergunta da entrevista. Tem algo a ver com o ipv6. Achei que poderia ser um número hexadecimal aleatório usado para exemplos, como "A rápida raposa marrom salta sobre o cão preguiçoso".
Meu entendimento está correto? Ou tem um significado mais significativo?
Respostas:
http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef
"Carne morta" é uma frase muito popular em programação, porque é construída apenas a partir de letras af, que são usadas em notação hexadecimal. Dois pontos no início e no meio da frase tornam esta frase um endereço IPv6 (teoricamente) válido.
fonte
É uma expressão inventada que usa apenas as letras AF, frequentemente usada quando um número hexadecimal reconhecível é necessário. Alguns sistemas o usam para vários fins, como mostrar a memória que foi liberada e não deve ser referenciada novamente. Em um depurador, esse valor exibido pode ser um sinal de que você cometeu um erro. Da Wikipedia :
O número 0xDEADBEEF é igual ao número decimal menos reconhecível 3735928559 (sem sinal) ou -559038737 (com sinal).
fonte
O valor de 0xDEADBEEF tem três benefícios práticos, principalmente para sistemas mais antigos. Antigos hacks de assembler / C, como eu, o usariam para preencher a memória não alocada para resolver problemas de memória. Além disso, é um trocadilho com a gíria "carne morta". O programador está morto se DEADBEEF aparecer em seus ponteiros. Parabenizo o cara que primeiro pensou em usar o valor DEADBEEF. É inteligente de várias maneiras.
Por razões práticas, em primeiro lugar, é mais perceptível em um despejo de memória hexadecimal porque na verdade soletra palavras em oposição a valores hexadecimais aleatórios.
Em segundo lugar, se o valor acabar em um ponteiro, é mais provável que induza uma falha de memória fora do intervalo. Um endereço DEADBEEF estava fora da faixa de endereços dos sistemas (estamos falando de sistemas do século passado agora), independentemente do endian do sistema.
Em terceiro lugar, é mais provável que induza uma falha em sistemas que requerem valores de ponteiro de limite pares para acessar dados de 16/32/64 bits. É mais provável que o valor falhe porque ambos os valores de 16 bits (DEAD, BEEF) são ímpares.
fonte
Como os endereços IPv6 são escritos em notação hexadecimal, você pode usar "Hexspeak" (números 0-9 e letras af) em endereços.
Há uma série de palavras que você pode usar como endereços válidos para melhor transformá-las em um momor.
Se você
ping6 www.facebook.com -n
obter algo como "2a03: 2880: f01c: 601: face: b00c : 0: 1".aqui estão alguns exemplos:
fonte
Ele também é usado para fins de depuração.
Aqui está uma lista útil de alguns desses valores:
http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values
fonte
As pessoas normalmente o usam para indicar valores fictícios. Acho que foi usado principalmente antes da ideia dos ponteiros NULL.
fonte
É um número mágico usado em vários lugares porque também pode ser lido em inglês, o que o faz se destacar. Existe uma lista parcial na Wikipedia .
fonte
Foi usado como um padrão para armazenar na memória como uma série de bytes hexadecimais (0xde, 0xad, 0xbe, 0xef). Você pode ver se a memória foi corrompida por causa de falha de hardware, saturação de buffer, etc.
fonte
0xDEADBEEF é normalmente preenchido nas matrizes de memória para que qualquer exceção quando apontada incorretamente ou para saber o buffer over funciona, etc.,
fonte