Ken Thompson, the creator of Unix, was once asked what he'd do if he had it to do over again. He said, "I'd spell creat with an 'e'."

What is Ken referring to? Is there a "creat" command?

  • 1
    Actually, he most likely didn't mean what he said: he probably meant that he'd spell creat with two 'e's - after all, one is already present. Of course, the implicit message being that UNIX turned out the way it was meant to be without any substantial changes only requiring fixing this [one] typo. Feb 6, 2017 at 11:22

4 Answers 4


It's a Unix system call that creates a file: At a Unix shell prompt, type man 2 creat to learn more.

Man pages are also available online these days:


Not only he refers to man 2 creat system call. He also refers to the obsolete trends to save on every tiny character, where possible, sometimes this being only confusing, especially now, when typing and storing another character is rarely an obstacle.

  • 18
    I think in the context of the question he was only referring to creat(). The point he was making was there was nothing about Unix he would have done differently except for this small spelling error in the system call to create a file.
    – jmucchiello
    Nov 11, 2009 at 8:04
  • 17
    @jmucchiello, it's not a spelling error. It's a deliberate (albeit non-standard) abbreviation. It fits with the heavy use of abbreviations like fcntl, ls, mv, etc, in general. Apr 13, 2011 at 19:15
  • 9
    Agree, but I love those abbrvtns even when we have TBs to store :)
    – tgkprog
    Jun 10, 2013 at 19:06
  • 2
    Teletype keys are hard to press. It was beneficial to save a few letters. First ones that could be eliminated were vowels and redundant consonants. Apr 26, 2017 at 11:15
  • 1
    It's not false economy when Teletype keys are involved.
    – Harsh
    May 6, 2022 at 17:32

I'm six years late to answer, but I believe that the extant answers all miss the point of Thompson's quote.

I'd spell creat with an 'e'.

Ken Thompson is not lamenting the name of the function used to open and possibly create a file. Rather, he is expressing that Unix was done properly, i.e. there is nothing major that should have been done differently.

The subtle point is that Unix architecture is sound, and the implementations are fine. One would need to bikeshed to find anything to improve in Unix. Thus, the obvious nitpick about the name of a common system call.

  • 4
    Right, he wants to tell us, that the UNIX architecture can be improved in very tiny aspects. But basically UNIX has done it right. BTW. creat is a system call not a CLI command.
    – ikrabbe
    Jul 9, 2015 at 20:59

It refers to the UNIX system call to create new files. Linkers on some machines were limited to identifiers of at most 6 characters. Apparently, Ken had to work with such a linker and hence the create system call was shortened to creat to match this limitation. The irony is that create does too.

See also: What does the 9th commandment mean?

  • 15
    The 6 character limit translated to 5, as the compiler (in order to avoid user symbols clashing with compiler generated ones) prepended a '_' before user variable/function names, and was careful not to use '_' when generating symbols.
    – vonbrand
    Mar 14, 2013 at 1:08
  • 4
    @vonbrand: That doesn't seem to explain how unlink or umount could exist, however, which I would think are contemporary with creat.
    – Dolda2000
    Jul 11, 2015 at 6:23
  • 2
    @Dolda2000 Well, it's quite possible the linker had this limitation, while the compiler did not. So umount would clash with umoun or umounx or whatever, but the name would be allowed. But that's pure speculation :)
    – Luaan
    Jul 12, 2015 at 7:32

You must log in to answer this question.