From 080a1ee8333718a0b09cfbb8de12c34dfe4b4363 Mon Sep 17 00:00:00 2001 From: sin Date: Mon, 9 Feb 2015 14:10:24 +0000 Subject: [PATCH] No need to free the buffer for every call to getline() It will realloc as necessary if the new line size exceeds the capacity of the allocated buffer. --- tail.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tail.c b/tail.c index 3ea4739..b97ed5c 100644 --- a/tail.c +++ b/tail.c @@ -101,13 +101,12 @@ main(int argc, char *argv[]) tail(fp, argv[0], n); if (fflag && argc == 1) { - for(;; tmp = NULL, tmpsize = 0) { + tmp = NULL; + tmpsize = 0; + for(;;) { while (getline(&tmp, &tmpsize, fp) != -1) { fputs(tmp, stdout); fflush(stdout); - free(tmp); - tmp = NULL; - tmpsize = 0; } if (ferror(fp)) eprintf("readline '%s':", argv[0]);