Todos sabemos como a discussão sobre qual é o melhor sistema operacional causou muitas guerras de chamas. Seu objetivo agora é fornecer "provas" decisivas de que seu sistema operacional favorito é melhor ... ah, não, muito melhor, fornecer "provas" decisivas de que outro sistema operacional é ruim.
A tarefa: escreva um programa que faça alguns cálculos e funcione corretamente em pelo menos um SO e incorretamente em pelo menos outro.
- o programa deve fazer pelo menos alguns cálculos; portanto, é necessário ler algumas entradas simples (de preferência na entrada padrão, ou se for de arquivos, se você quiser, mas o uso indevido de little endian / big endian não seria apenas barato, mas também óbvio) , e forneça alguma saída, dependendo da entrada. Os cálculos devem ser significativos e justificados, por exemplo, resolver uma vida real ou um problema matemático.
- você deve especificar os dois sistemas operacionais, indicando em qual deles funcionará corretamente e em qual não. Ambos os sistemas operacionais devem ser bem conhecidos e aproximadamente ao mesmo tempo (portanto, não há DOS 1.0 versus um sistema operacional moderno). É aconselhável fornecer uma breve descrição sobre a causa da diferença (especialmente se você suspeitar que muitas pessoas não perceberiam) em tags de spoiler.
como isso
a causa da diferença tem que ser sutil, então não
#ifdef _WIN32
ou similar, por favor! Lembre-se, seu objetivo é "provar" que esse sistema específico é ruim, para que as pessoas não possam (imediatamente) descobrir seu truque!se houver uma parte muito estranha ou muito incomum no seu código, você deverá justificá-lo nos comentários por que ele está lá. Obviamente, essa "justificativa" pode / será uma grande mentira.
Pontuação:
Isto não é um golfe! O código deve ser bem organizado e simples. Lembre-se, seu objetivo é ocultar um bug para que as pessoas não suspeitem. Quanto mais simples o código, menos suspeito é.
O vencedor será decidido por votos. O maior número de votos após aproximadamente 10 dias após o primeiro envio válido vence. Geralmente, as respostas em que o código é fácil de ler e entender, mas o bug está bem oculto e, mesmo se descoberto, podem ser atribuídas a um erro e não à malícia, devem ser votadas. Da mesma forma, deve valer muito mais se o erro causar apenas um resultado incorreto, em vez de apenas causar a falha do programa ou não fazer nada.
Como sempre, detenho o direito de escolher uma resposta como vencedora se ela não estiver mais de 10% ou 1 ponto abaixo da que tiver mais votos, em qualquer critério subjetivo.
make (1)
funciona corretamente em essencialmente todas as caixas unix e indevidamente em algumas caixas de janelas. Não por causa dos sistemas operacionais, mas por causa dos sistemas de arquivos. Qualquer sistema de arquivos que mantém as datas de modificação de arquivos com baixa precisão pode não funcionarmake
adequadamente em uma máquina rápida.