O que esse código faz? [duplicado]

1

Eu encontrei este código em um tweet:

:(){ :|: & };:

Ele disse algo sobre o fork, mas eu não entendo como isso funciona. Alguém poderia explicar em detalhes o que faz e como funciona? Agradecemos antecipadamente.

    
por cronos2 20.05.2013 / 19:17

1 resposta

3

Isso é uma "bomba de garfo", como você ouviu. Há toda uma página da Wikipedia sobre isso .

The fork bomb in this case is a recursive function that runs in the background, thanks to the ampersand operator. This ensures that the child process does not die and keeps forking new copies of the function, consuming system resources. -Wikipedia

Em resumo, o que ele está fazendo é criar mais e mais processos (chamando a mesma função recursivamente), sobrecarregando o sistema.

Você notará que o identificador de função é ":()", que você pode substituir por um nome e recuar o código para torná-lo mais legível:

Ao substituir o identificador de função e reindingir, o código diz:

bomb() { 
  bomb | bomb & 
}; 
bomb

"Não tente isso em casa, crianças." -Mr. Assistente

    
por 20.05.2013 / 19:24