In order to perform faster when doing "head -n", use a pair of

fgetln/fwrite instead of getc/putchar, this seems about five times
faster.
This commit is contained in:
alfred 2001-11-02 09:27:16 +00:00
parent 27d5f09236
commit e4c6c1e11c

View File

@ -130,14 +130,15 @@ head(fp, cnt)
FILE *fp;
register int cnt;
{
register int ch;
char *cp;
int error, readlen;
while (cnt && (ch = getc(fp)) != EOF) {
if (putchar(ch) == EOF)
err(1, "stdout");
if (ch == '\n')
cnt--;
}
while (cnt && (cp = fgetln(fp, &readlen)) != NULL) {
error = fwrite(cp, sizeof(char), readlen, stdout);
if (error != readlen)
err(1, "stdout");
cnt--;
}
}
void