From 259b3c047aea430c4aaecbdb9580a07e67691e8d Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 28 Nov 2013 03:14:16 +0100 Subject: sed: open input files sequentially to avoid EMFILE Currently, sed pre-opens all files, which may cause EMFILE errors on systems with low ulimit -n. Change sed to open one file at a time. function old new delta get_next_line 177 235 +58 sed_main 682 652 -30 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 58/-30) Total: 28 bytes Based on the patch by Daniel Borca Signed-off-by: Denys Vlasenko --- libbb/fclose_nonstdin.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libbb/fclose_nonstdin.c') diff --git a/libbb/fclose_nonstdin.c b/libbb/fclose_nonstdin.c index 5ce9d5b48..1b1441347 100644 --- a/libbb/fclose_nonstdin.c +++ b/libbb/fclose_nonstdin.c @@ -18,7 +18,8 @@ int FAST_FUNC fclose_if_not_stdin(FILE *f) { /* Some more paranoid applets want ferror() check too */ int r = ferror(f); /* NB: does NOT set errno! */ - if (r) errno = EIO; /* so we'll help it */ + if (r) + errno = EIO; /* so we'll help it */ if (f != stdin) return (r | fclose(f)); /* fclose does set errno on error */ return r; -- cgit v1.2.3