Re:When your data doesn’t fit in memory: the basic techniques
by rongenre on Monday November 11, 2019 @04:28PM
(#21509101)
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.
[ Parent
| on HN ]
Re:When your data doesn’t fit in memory: the basic techniques
by dfox on Monday November 11, 2019 @07:42PM
(#21510449)
The 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.