就目前而言,这个问题不适合我们的问答形式。我们希望答案能得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或深入讨论。如果您认为这个问题可以改进并可能重新开放,请visit the help center寻求指导。
十年前就关门了。
为什么创建系统调用叫做creat
?
另外,为什么缓冲区大小的定义被称为BUFSIZ
而不是BUFSIZE
?
是否还有其他类似的例子?
相关:(摘自评论)
What did Ken Thompson mean when he said, “I'd spell create with an 'e'.”
4条答案
按热度按时间vqlkdk9b1#
来自LSP(第28页):
是的,这个函数的名字缺少了一个e。Unix的创造者Ken Thompson曾经开玩笑说,缺少一个字母是他在设计Unix时最大的遗憾。
7uhlpewt2#
在
pdp-11
时代,有一种名为radix50
的编码,将三个字符(从有限的集合中)打包成一个16位字。这引入了文件名6个字母和扩展名3个字母,标识符6个字母等的限制。也就是说,它不能以任何方式解释
creat
。0wi1tuuw3#
我最喜欢的例子是unixoid系统上的短名称疯狂是umount命令(见www.example.com上的“Why is 'umount' not spelled 'unmount'?”线程的解释unix.stackexchange.org,再次,六个字母的限制)。这将是非常有趣的比较节省的时间少了一个字母的类型与投资的时间阅读手册页和咨询信息,在所有这些成千上万的Unix用户多年来...
qhhrdooz4#
你必须记住,在过去,内存是非常宝贵的。编译器的变量名最大长度非常短是很常见的。我工作的系统的最大长度为3。许多早期的C编译器限制变量名为6个字符。