Eigentlich meinte er höchstwahrscheinlich nicht, was er sagte: Er meinte wahrscheinlich, dass er creatmit zwei Es buchstabieren würde - schließlich ist eines bereits vorhanden. Die implizite Botschaft ist natürlich, dass UNIX wie vorgesehen ohne wesentliche Änderungen verlaufen ist und nur diesen [einen] Tippfehler behoben werden muss.
Dietmar Kühl
Antworten:
56
Es ist ein Unix-Systemaufruf, der eine Datei erstellt: Geben Sie an einer Unix-Shell-Eingabeaufforderung Folgendes ein, man 2 creatum weitere Informationen zu erhalten.
Nicht nur er bezieht sich auf man 2 creatSystemaufruf. Er verweist auch auf die veralteten Trends, nach Möglichkeit bei jedem winzigen Zeichen zu sparen. Manchmal ist dies nur verwirrend, besonders jetzt, wenn ein anderes Zeichen eingegeben und gespeichert wird, selten ein Hindernis.
Ich denke, im Zusammenhang mit der Frage bezog er sich nur auf creat (). Der Punkt, den er ansprach, war, dass es an Unix nichts gab, was er anders gemacht hätte, außer bei diesem kleinen Rechtschreibfehler im Systemaufruf, um eine Datei zu erstellen.
15
@jmucchiello, es ist kein Rechtschreibfehler. Es ist eine absichtliche (wenn auch nicht standardmäßige) Abkürzung. Er paßt mit dem starken Gebrauch von Abkürzungen wie fcntl, ls, mvusw., im Allgemeinen.
Matthew Flaschen
6
Stimmen Sie zu, aber ich liebe diese Abkürzungen, auch wenn wir TBs zu speichern haben :)
tgkprog
2
Teletyp-Tasten sind schwer zu drücken. Es war von Vorteil, ein paar Briefe zu speichern. Die ersten, die beseitigt werden konnten, waren Vokale und überflüssige Konsonanten.
Erkin Alp Güney
24
Es bezieht sich auf den UNIX-Systemaufruf zum Erstellen neuer Dateien. Linker auf einigen Computern waren auf Bezeichner mit höchstens 6 Zeichen beschränkt. Anscheinend musste Ken mit einem solchen Linker arbeiten und daher wurde der Systemaufruf create auf creat verkürzt, um dieser Einschränkung zu entsprechen. Die Ironie ist, dass schaffen auch tut.
Die Begrenzung auf 6 Zeichen wurde in 5 übersetzt, da der Compiler (um zu vermeiden, dass Benutzersymbole mit vom Compiler generierten Symbolen in Konflikt geraten) einem '_'Variablen- / Funktionsnamen vorangestellt und darauf geachtet hat, dass er '_'beim Generieren von Symbolen nicht verwendet wird.
Vonbrand
3
@vonbrand: Das scheint aber nicht zu erklären, wie unlinkoder wie umountes existieren könnte, was ich für zeitgemäß halte creat.
Dolda2000,
@ Dolda2000 Naja, es ist gut möglich, dass der Linker diese Einschränkung hatte, während der Compiler dies nicht tat. So umountwürde kollidieren umounoder umounxoder was auch immer, aber der Name würde erlaubt werden. Aber das ist reine Spekulation :)
Luaan
23
Ich bin sechs Jahre zu spät dran, aber ich glaube, dass die erhaltenen Antworten alle den Sinn von Thompsons Zitat verfehlen.
Ich würde Kreation mit einem 'e' buchstabieren.
Ken Thompson beklagt nicht den Namen der Funktion, die zum Öffnen und möglicherweise Erstellen einer Datei verwendet wird. Er drückt vielmehr aus, dass Unix richtig gemacht wurde, dh es gibt nichts Wichtiges , was anders hätte gemacht werden sollen.
Der subtile Punkt ist, dass die Unix-Architektur solide ist und die Implementierungen in Ordnung sind. Man müsste mit dem Fahrrad fahren , um in Unix etwas zu verbessern. Somit ist der offensichtliche Trottel über den Namen eines gängigen Systemaufrufs.
Richtig, möchte er uns sagen, dass die UNIX-Architektur in sehr kleinen Aspekten verbessert werden kann. Aber im Grunde hat UNIX es richtig gemacht. Übrigens. creatist ein Systemaufruf, kein CLI-Befehl.
creat
mit zwei Es buchstabieren würde - schließlich ist eines bereits vorhanden. Die implizite Botschaft ist natürlich, dass UNIX wie vorgesehen ohne wesentliche Änderungen verlaufen ist und nur diesen [einen] Tippfehler behoben werden muss.Antworten:
Es ist ein Unix-Systemaufruf, der eine Datei erstellt: Geben Sie an einer Unix-Shell-Eingabeaufforderung Folgendes ein,
man 2 creat
um weitere Informationen zu erhalten.Manpages sind heutzutage auch online verfügbar:
creat(2)
creat(3p)
.quelle
Nicht nur er bezieht sich auf
man 2 creat
Systemaufruf. Er verweist auch auf die veralteten Trends, nach Möglichkeit bei jedem winzigen Zeichen zu sparen. Manchmal ist dies nur verwirrend, besonders jetzt, wenn ein anderes Zeichen eingegeben und gespeichert wird, selten ein Hindernis.quelle
fcntl
,ls
,mv
usw., im Allgemeinen.Es bezieht sich auf den UNIX-Systemaufruf zum Erstellen neuer Dateien. Linker auf einigen Computern waren auf Bezeichner mit höchstens 6 Zeichen beschränkt. Anscheinend musste Ken mit einem solchen Linker arbeiten und daher wurde der Systemaufruf create auf creat verkürzt, um dieser Einschränkung zu entsprechen. Die Ironie ist, dass schaffen auch tut.
Siehe auch: Was bedeutet das 9. Gebot?
quelle
'_'
Variablen- / Funktionsnamen vorangestellt und darauf geachtet hat, dass er'_'
beim Generieren von Symbolen nicht verwendet wird.unlink
oder wieumount
es existieren könnte, was ich für zeitgemäß haltecreat
.umount
würde kollidierenumoun
oderumounx
oder was auch immer, aber der Name würde erlaubt werden. Aber das ist reine Spekulation :)Ich bin sechs Jahre zu spät dran, aber ich glaube, dass die erhaltenen Antworten alle den Sinn von Thompsons Zitat verfehlen.
Ken Thompson beklagt nicht den Namen der Funktion, die zum Öffnen und möglicherweise Erstellen einer Datei verwendet wird. Er drückt vielmehr aus, dass Unix richtig gemacht wurde, dh es gibt nichts Wichtiges , was anders hätte gemacht werden sollen.
Der subtile Punkt ist, dass die Unix-Architektur solide ist und die Implementierungen in Ordnung sind. Man müsste mit dem Fahrrad fahren , um in Unix etwas zu verbessern. Somit ist der offensichtliche Trottel über den Namen eines gängigen Systemaufrufs.
quelle
creat
ist ein Systemaufruf, kein CLI-Befehl.