为什么创建系统调用称为creat?

Beg*_*ner 23 c unix linux posix

为什么要调用创建系统调用creat

另外,为什么要调用缓冲区大小的定义BUFSIZ而不是BUFSIZE

还有其他这样的例子吗?

相关:(摘自评论)
肯汤普森在说"我用'e'创作拼写时"的意思.

cni*_*tar 23

LSP(第28页):

是的,这个功能的名字缺少一个e.Unix的创造者肯·汤普森曾经开玩笑说,这封丢失的信是他在Unix设计中最大的遗憾.

  • LSP是什么意思? (3认同)

Mic*_*ker 10

回到那个时代pdp-11,有一个叫做的编码radix50,将三个字符(从有限集合)打包成一个16位字.这引入了6个字母的文件名限制,3个用于扩展名,6个字母用于标识符等.

也就是说,它没有任何解释creat.

  • 那是不是"umount"发生了什么? (2认同)
  • 我第一次看到上面的"radix50"是"50?它们如何适应16位中的50个选项中的一个,即使是41个选项中的三个也不适合?" 然后我意识到DEC有多喜欢八进制. (2认同)

drd*_*cox 5

你必须记住,在过去,记忆是非常有价值的.编译器通常具有非常短的最大变量名称长度.我在最大长度为3的系统上工作.许多早期的C编译器将变量名称限制为6个字符.

  • 你在说什么?他们将名字限制为6个字符,当然,"creat"有5."create"会有6个. (2认同)

jst*_*rek 5

我最喜欢unixoid系统上的短名称疯狂的例子是umount命令(请参阅" 为什么'umount'未拼写'unmount'? "在unix.stackexchange.org上解析,再一次,六个-letter限制).通过将一个字母减去一个字母所节省的时间与阅读联机帮助页面和咨询信息所花费的时间进行比较,比较多年来成千上万的Unix用户,这将是非常有趣的...

  • 但命名不是为了节省时间,而是对名称长度的严格限制. (3认同)