Linux cal-Befehl zeigt keine korrekte Ausgabe an


5

Wenn Sie cal 9 1752ein Linux-Terminal eingeben, erhalten Sie eine seltsame Ausgabe. Zum Beispiel:

[max@avi ~]$ cal 9 1752

   September 1752  

Su Mo Tu We Th Fr Sa

       1  2 14 15 16

17 18 19 20 21 22 23

24 25 26 27 28 29 30

Haben Sie bemerkt, dass das Datum von 3 bis 13 fehlt? Warum ist das so? Ich benutze CentOS 6.2.


Witzige Tatsache: man calerklärt, dass ... darauf gestoßen ist, als ich es in mein Conky-Skript integriert habe. Oder zumindest einige Manpages ...
Bobby

Antworten:


15

Es ist kein Problem, diese Daten wurden im September 1752 übersprungen.

Großbritannien und das britische Empire (einschließlich des östlichen Teils der heutigen Vereinigten Staaten) übernahmen 1752 den Gregorianischen Kalender. Zu diesem Zeitpunkt war eine Korrektur um 11 Tage erforderlich. Mittwoch, 2. September 1752 folgte Donnerstag, 14. September 1752.

Referenz: http://en.wikipedia.org/wiki/Gregorian_calendar


0

Der Typ, der ursprünglich den Befehl "cal" auf einem alten Computer der Version 7 geschrieben hatte, hatte einen Fehler im Code. Dies zeigte sich als eine fehlerhafte Ausgabe, wenn eine malloc-Variable 12 zusätzliche Bytes mit Nullen überschrieb, was zu der oben gezeigten seltsamen Kalenderausgabe führte.

Jetzt kümmert sich niemand, der bei Verstand ist, wirklich um den Kalender für September 1752. Sogar die Idee des Jahres 1752 existiert unter UNIX nicht, da die Zeit für UNIX erst Anfang 1970 begann. Infolgedessen wusste niemand, dass "cal "hatte diesen Fehler erst viel später. Bis dahin gab es Tausende von Exemplaren von "cal", von denen viele nur binär sind. Es war zu spät, um sie alle zu reparieren.

Mitte 1975 trafen sich einige hochrangige AT & T-Beamte mit dem Papst und einigten sich. Der Kalender wurde rückwirkend geändert, um den September 1752 mit der Realität von UNIX in Einklang zu bringen. Da der Kalender durch Rückwärtszählung vom 14. September 1752 geändert wurde , war keines der darauf folgenden Daten betroffen. Die Daten davor wurden alle um 12 Tage verschoben. Sie haben auch die Manpage für "cal" korrigiert, um den Fehler als Feature zu dokumentieren.

Die elf Tage vom 3. September bis zum 13. September waren einfach aus den Aufzeichnungen verschwunden. Sie durchsuchten die Geschichtsbücher und fanden heraus, dass in diesen elf Tagen glücklicherweise nichts von großer Bedeutung passiert war.

Insgesamt war dieser ganze Vorfall so gut wie kein Ereignis. Ein Science-Fiction-Autor hat später davon erfahren und die Sache in ein umfassendes Science-Fiction-Werk namens "The Lathe of Heaven" gesprengt, ein Buch, das meiner Meinung nach wenig mit dem zu tun hat, was wirklich passiert ist.

Originalquelle


6
Die Art und Weise, wie diese Antwort geschrieben ist, verbirgt die Tatsache, dass es sich um ein direktes Ausschneiden und Einfügen von einer Humor- Site handelt.
Ward
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.