I wish the article did more to explain why "the naming for fstat/lstat not consistent with fseek/lseek".<p>I understand it's not written for people like me, but here I am reading it
spoiler: the `l` is for long. the previous `seek()` took an int.<p>i rather enjoy the exposition of the article. he weaved the story nicely rather than just blurt out the answer. the utoronto unix blog in general is enjoyable.
Even back then the unix abstractions were breaking down.<p>The problem with lseek is pretty simple: how do you know if a file size is bigger than your int? You can do a stat, but that means stat should return a long, but if all you have are ints then what do you do? Make a signed negative value an offset off of the end of an int?<p>These little problems exist everywhere in the bowels of stuff, and they're sort of fun design problems to think about.<p>And the problem is that these were small machines, where everything counts. There was no point wasting some bytes and cycles with typeof metadata.