Sappiamo tutti come la discussione su quale sia il miglior sistema operativo abbia causato molte guerre di fiamma. Il tuo obiettivo ora è fornire una "prova" decisiva che il tuo sistema operativo preferito sia migliore ... ah, no, molto meglio, fornire una "prova" decisiva che un altro sistema operativo è difettoso.
Il compito: scrivere un programma che esegua alcuni calcoli e funzioni correttamente su almeno un sistema operativo e in modo errato su almeno un altro.
- il programma dovrebbe fare almeno alcuni calcoli, quindi deve leggere alcuni input semplici (preferibilmente sull'input standard, o se dai file se lo si desidera, ma l'uso improprio di little endian / big endian non sarebbe solo economico, ma anche ovvio) , e fornire un output in base all'input. I calcoli dovrebbero essere significativi e giustificati, ad esempio per risolvere una vita reale o un problema matematico.
- dovresti specificare entrambi i sistemi operativi, indicando su quale funzionerà correttamente e su quale non funzionerà. Entrambi i sistemi operativi dovrebbero essere ben noti e più o meno allo stesso tempo (quindi nessun DOS 1.0 rispetto a un sistema operativo moderno). Si consiglia di fornire una breve descrizione della causa della differenza (specialmente se si sospetta che molte persone non se ne renderebbero conto) nei tag spoiler.
come questo
la causa della differenza deve essere sottile, quindi no
#ifdef _WIN32
o simile, per favore! Ricorda, il tuo obiettivo è "dimostrare" che questo sistema specifico è difettoso, quindi le persone non dovrebbero essere in grado (immediatamente) di individuare il tuo trucco!se c'è una parte molto strana o molto insolita nel tuo codice, devi giustificarlo nei commenti perché è lì. Naturalmente questa "giustificazione" può / sarà una grande menzogna.
punteggio:
Questo non è un golf! Il codice dovrebbe essere ben organizzato e semplice. Ricorda, il tuo obiettivo è quello di nascondere un bug in modo che la gente non lo sospetti. Più semplice è il codice, meno è sospetto.
Il vincitore sarà deciso con voti. Vince il maggior numero di voti dopo circa 10 giorni dalla prima presentazione valida. In generale, le risposte in cui il codice è facile da leggere e comprendere, ma il bug è ben nascosto, e anche se scoperto, possono essere attribuite a un errore piuttosto che alla malizia, dovrebbero essere votate. Allo stesso modo, dovrebbe valere molto di più se il bug causa solo un risultato errato, piuttosto che semplicemente causare il crash del programma o non fare nulla.
Come al solito, trattengo il diritto di scegliere una risposta come vincente se non supera di oltre il 10% o 1 punto quella con il maggior numero di voti, su qualsiasi criterio soggettivo.
make (1)
Funziona in modo interessante su essenzialmente ogni scatola unix e impropriamente alcune finestre. Non a causa dei sistemi operativi, ma a causa dei filesystem. Qualsiasi file system che mantiene le date di modifica dei file con bassa precisione potrebbe non funzionaremake
correttamente su una macchina veloce.