En fait, il n'a probablement pas voulu dire ce qu'il a dit: il voulait probablement dire qu'il épelerait creatavec deux «e» - après tout, l'un est déjà présent. Bien entendu, le message implicite étant qu'UNIX s'est avéré tel qu'il était censé être sans modifications substantielles nécessitant simplement de corriger cette [une] faute de frappe.
Dietmar Kühl
Réponses:
56
C'est un appel système Unix qui crée un fichier: À l'invite du shell Unix, tapez man 2 creatpour en savoir plus.
Les pages de manuel sont également disponibles en ligne ces jours-ci:
Non seulement il fait référence à man 2 creatun appel système. Il fait également référence aux tendances obsolètes pour économiser chaque caractère minuscule, lorsque cela est possible, ce qui est parfois déroutant, surtout maintenant, lorsque la saisie et le stockage d'un autre caractère constituent rarement un obstacle.
Je pense que dans le contexte de la question, il ne faisait référence qu'à creat (). Ce qu'il disait, c’est qu’il n’aurait rien fait à propos d’Unix, à part cette petite erreur d’orthographe dans l’appel système à créer un fichier.
15
@jmucchiello, ce n'est pas une faute d'orthographe. C'est une abréviation délibérée (bien que non standard). Il correspond à l'utilisation lourde des abréviations comme fcntl, ls, mv, etc., en général.
Matthew Flaschen le
6
D'accord, mais j'adore ces abréviations même lorsque nous avons des TB à stocker :)
mercredi
2
Les touches de télétype sont difficiles à appuyer. Il était avantageux de conserver quelques lettres. Les premiers à être éliminés étaient les voyelles et les consonnes redondantes.
Erkin Alp Güney
24
Il fait référence à l'appel système UNIX pour créer de nouveaux fichiers. Les lieurs sur certaines machines étaient limités à des identifiants d'au plus 6 caractères. Apparemment, Ken devait travailler avec un tel éditeur de liens et par conséquent, l' appel système create a été abrégé en creat pour correspondre à cette limitation. L'ironie est que créer fait aussi.
La limite de 6 caractères a été traduite en 5 caractères, car le compilateur (afin d'éviter tout conflit entre les symboles utilisateur et ceux générés par le compilateur) a précédé '_'le nom de la variable utilisateur / du nom de la fonction avant, en prenant soin de ne pas l'utiliser '_'lors de la génération de symboles.
vonbrand
3
@vonbrand: Cela ne semble pas expliquer comment unlinkou umountpourrait exister, ce qui, à mon avis, serait contemporain creat.
Dolda2000
@ Dolda2000 Eh bien, il est fort possible que l'éditeur de liens ait eu cette limitation, contrairement au compilateur. Alors umountserait en conflit avec umounou umounxou autre chose, mais le nom serait autorisé. Mais ce n’est que pure spéculation :)
Luaan
23
J'ai six ans de retard pour répondre, mais je pense que les réponses existantes manquent toutes le sens de la citation de Thompson.
J'épelle creat avec un 'e'.
Ken Thompson ne déplore pas le nom de la fonction utilisée pour ouvrir et éventuellement créer un fichier. Il affirme plutôt qu'Unix a été fait correctement, c'est-à-dire qu'il n'y a rien de majeur qui aurait dû être fait différemment.
Le point subtil est que l'architecture Unix est bonne et que les implémentations sont correctes. Il faudrait bikeshed pour trouver quelque chose à améliorer sous Unix. Ainsi, le nitpick évident sur le nom d'un appel système commun.
C'est vrai, il veut nous dire que l'architecture UNIX peut être améliorée dans de très petits aspects. Mais fondamentalement, UNIX a bien fait les choses. BTW. createst un appel système et non une commande CLI.
creat
avec deux «e» - après tout, l'un est déjà présent. Bien entendu, le message implicite étant qu'UNIX s'est avéré tel qu'il était censé être sans modifications substantielles nécessitant simplement de corriger cette [une] faute de frappe.Réponses:
C'est un appel système Unix qui crée un fichier: À l'invite du shell Unix, tapez
man 2 creat
pour en savoir plus.Les pages de manuel sont également disponibles en ligne ces jours-ci:
creat(2)
creat(3p)
.la source
Non seulement il fait référence à
man 2 creat
un appel système. Il fait également référence aux tendances obsolètes pour économiser chaque caractère minuscule, lorsque cela est possible, ce qui est parfois déroutant, surtout maintenant, lorsque la saisie et le stockage d'un autre caractère constituent rarement un obstacle.la source
fcntl
,ls
,mv
, etc., en général.Il fait référence à l'appel système UNIX pour créer de nouveaux fichiers. Les lieurs sur certaines machines étaient limités à des identifiants d'au plus 6 caractères. Apparemment, Ken devait travailler avec un tel éditeur de liens et par conséquent, l' appel système create a été abrégé en creat pour correspondre à cette limitation. L'ironie est que créer fait aussi.
Voir aussi: Que signifie le 9ème commandement?
la source
'_'
le nom de la variable utilisateur / du nom de la fonction avant, en prenant soin de ne pas l'utiliser'_'
lors de la génération de symboles.unlink
ouumount
pourrait exister, ce qui, à mon avis, serait contemporaincreat
.umount
serait en conflit avecumoun
ouumounx
ou autre chose, mais le nom serait autorisé. Mais ce n’est que pure spéculation :)J'ai six ans de retard pour répondre, mais je pense que les réponses existantes manquent toutes le sens de la citation de Thompson.
Ken Thompson ne déplore pas le nom de la fonction utilisée pour ouvrir et éventuellement créer un fichier. Il affirme plutôt qu'Unix a été fait correctement, c'est-à-dire qu'il n'y a rien de majeur qui aurait dû être fait différemment.
Le point subtil est que l'architecture Unix est bonne et que les implémentations sont correctes. Il faudrait bikeshed pour trouver quelque chose à améliorer sous Unix. Ainsi, le nitpick évident sur le nom d'un appel système commun.
la source
creat
est un appel système et non une commande CLI.