[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: fflush & close behavior not well-defined

From: Andrew J. Schorr
Subject: Re: fflush & close behavior not well-defined
Date: Mon, 14 Sep 2020 11:37:28 -0400
User-agent: Mutt/1.5.21 (2010-09-15)

On Mon, Sep 14, 2020 at 05:27:13PM +0200, Manuel Collado wrote:
> El 14/09/2020 a las 15:07, Andrew J. Schorr escribió:
> >Hi,
> >
> >On Sun, Sep 13, 2020 at 11:50:17PM -0600, arnold@skeeve.com wrote:
> >>Thanks for the report. Gawk's close already takes an optional second
> >>argument ("from" or "to") for closing one end of a two-way pipe.
> >
> >True, but if you look at the code in io.c:do_close, you'll see that the 
> >from/to
> >"how" argument does not come into play until after the open file is 
> >identified
> >by scanning the red_head list. So the presence of that argument does not 
> >limit
> >the search to the subset of open pipes. It merely triggers a warning from
> >io.c:close_redir if used with a file that's not a pipe. So in the case of
> >close, the fix would require up to 3 arguments:
> >    close(file, [, filetype [, how]])
> >(with the code being smart enough to detect when "how" is located in the
> >2nd position).
> Another possibility would be to add two specific close() wrappers, say
> close_file(file)
> close_pipe(pipe, how)
> To be used if it is necessary to disambiguate.
> Just an idea.

And you'd also need close_coprocess(pipe, how). In my view, it's simpler to
enhance the existing close and fflush functions, but I grant that these
problems are very unlikely to occur in real life.  It's just sloppiness in the
awk POSIX spec that has failed to disambiguate.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]