Wir alle wissen, wie die Diskussion um das beste Betriebssystem viele Flammenkriege ausgelöst hat. Ihr Ziel ist es nun, den entscheidenden "Beweis" zu erbringen, dass Ihr Lieblingsbetriebssystem besser ist ... ah, nein, viel besser, den entscheidenden "Beweis" zu erbringen, dass ein anderes Betriebssystem schlecht ist.
Die Aufgabe: Schreiben Sie ein Programm, das einige Berechnungen durchführt und auf mindestens einem Betriebssystem korrekt und auf mindestens einem anderen falsch funktioniert.
- Das Programm sollte zumindest einige Berechnungen durchführen, daher muss es einige einfache Eingaben lesen (vorzugsweise auf der Standardeingabe, oder wenn aus Dateien, wenn Sie möchten, aber der Missbrauch von Little Endian / Big Endian wäre nicht nur billig, sondern auch offensichtlich) . und bieten einige Ausgabe abhängig von der Eingabe. Die Berechnungen sollten aussagekräftig und gerechtfertigt sein, beispielsweise um ein reales Leben oder ein mathematisches Problem zu lösen.
- Sie sollten beide Betriebssysteme angeben und angeben, auf welchem es ordnungsgemäß funktioniert und auf welchem nicht. Beide Betriebssysteme sollten wohlbekannt sein und ungefähr zur gleichen Zeit (also kein DOS 1.0 im Vergleich zu einem modernen Betriebssystem). Es wird empfohlen, in Spoiler-Tags eine kurze Beschreibung der Ursache des Unterschieds anzugeben (insbesondere, wenn Sie den Verdacht haben, dass viele Leute dies nicht bemerken würden).
so was
die ursache für den unterschied muss subtil sein, also nein
#ifdef _WIN32
oder ähnlich, bitte! Denken Sie daran, Ihr Ziel ist es, zu "beweisen", dass dieses spezielle System schlecht ist, sodass die Leute Ihren Trick nicht (sofort) erkennen sollten!Wenn Ihr Code einen sehr seltsamen oder sehr ungewöhnlichen Teil enthält, müssen Sie ihn in Kommentaren begründen, warum er vorhanden ist. Natürlich kann / wird diese "Rechtfertigung" eine große Lüge sein.
Wertung:
Das ist kein Golf! Der Code sollte gut organisiert und einfach gehalten sein. Denken Sie daran, Ihr Ziel ist es, einen Fehler darin zu verstecken, damit die Leute ihn nicht ahnen. Je einfacher der Code, desto weniger verdächtig ist er.
Der Gewinner wird per Abstimmung ermittelt. Die meisten Stimmen nach ungefähr 10 Tagen nach der ersten gültigen Einreichung gewinnen. Im Allgemeinen sollten Antworten, bei denen der Code leicht zu lesen und zu verstehen ist, der Fehler jedoch gut versteckt ist und selbst wenn er entdeckt wird, eher auf einen Fehler als auf Böswilligkeit zurückgeführt werden kann, positiv bewertet werden. Ebenso sollte es viel mehr wert sein, wenn der Fehler nur ein falsches Ergebnis verursacht, anstatt nur das Programm zum Absturz zu bringen oder nichts zu tun.
Wie üblich behalte ich mir das Recht vor, eine Antwort als Gewinner zu wählen, wenn sie nach subjektiven Kriterien nicht mehr als 10% oder 1 Punkt unter derjenigen mit den meisten Stimmen liegt.
make (1)
funktioniert das auf praktisch jeder Unix-Box und auf einigen Windows-Boxen nicht richtig. Nicht wegen der Betriebssysteme, sondern wegen der Dateisysteme. Jedes Dateisystem, das das Änderungsdatum von Dateien mit geringer Genauigkeit speichert,make
funktioniert auf einem schnellen Computer möglicherweise nicht ordnungsgemäß.