为什么创build系统调用叫做creat
?
另外,为什么一个缓冲区大小的定义被称为BUFSIZ
而不是BUFSIZE
?
还有其他的例子吗?
相关:(取自评论)
肯·汤普森(Ken Thompson)说:“我会拼写一个'e'。
从LSP (第28页):
是的,这个函数的名字是缺少e。 Unix的创始人Ken Thompson曾经开玩笑说这封失踪的信是他在Unix设计中最大的遗憾。
回到radix50
pdp-11
,出现了一个名为radix50
的编码,将三个字符(从有限的集合中)打包成一个16位的字。 这引入了6个字母文件名和3个扩展名的限制,6个字母的标识符等。
这就是说,它不能解释creat
。
你必须记住,在过去,记忆是非常有价值的。 编译器通常具有非常短的最大变量名称长度。 我在最大长度为3的系统上工作。许多早期的C编译器将变量名限制为6个字符。
我最喜欢unixoid系统上的短名称疯狂的例子是umount命令(请参阅“ 为什么是'卸载'不拼写'unmount'? ”在unix.stackexchange.org上的线程,再次解释为六-letter限制)。 比较一个字母减少键入的时间与阅读联机帮助页和咨询信息所花费的时间,以及那些年来成千上万的Unix用户所节省的时间将是非常有趣的。