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 <dborca@yahoo.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user