4 ms·
Yeah log(n) would be the space to hold the digits of the counter. Presumably (unless things got super-silly), this would be dominated by the buffer size for th
by rongenre 7y ago
Yeah log(n) would be the space to hold the digits of the counter. Presumably (unless things got super-silly), this would be dominated by the buffer size for the line being read.
- dfox 7y agoThe point there is that you don’t need a buffer for whole line, you only have to find the line terminators. Something like: printf(“0: “); ln = 1; while ((ch = getch()) != EOF) { putch(ch); if (ch == EOL) { printf(“%d: “, ln); ln++; } } And I believe that original unix implementation of nl is mostly this, although with the stdio functions replaced with raw read/write.