Re: Hello fdclose

From: John Baldwin <jhb_at_freebsd.org>
Date: Thu, 20 Mar 2014 09:32:02 -0400
On Tuesday, March 18, 2014 5:35:16 pm Jilles Tjoelker wrote:
> On Tue, Mar 18, 2014 at 12:23:19AM +0100, Mariusz Zaborski wrote:
> > After our previous discuss  [1] I prepare fdclosedir(3) function which
> > was committed by Pawel (cc'ed) in commit r254499.
> 
> > A while ago I also prepare the fdclose function. Unfortunately, this
> > new function is a little bit more tricky then previous one. Can I ask
> > you for a review of this patch?
> 
> Does this patch allow perl to stop writing to FILE._file? As pointed out
> in
> http://lists.freebsd.org/pipermail/freebsd-current/2013-January/039024.html
> perlio.c in the perl source contains a function
> PerlIOStdio_invalidate_fileno() that should modify a FILE such that
> fclose() does not close the file descriptor but still frees all memory
> (Perl has already called fflush()). Although using fdclose() could solve
> this without touching the internals of FILE, this will make perlio.c
> uglier with even more #ifdefs.

I hope it does.  I want to have some sort of API for Perl to use so it
stops (ab)using _file before I move forward with full int _file.

> I think that in cases where fdclose() would be used, it is essential
> that the file descriptor is never closed. This means that the API needs
> to be different so it can report a write error but still return a file
> descriptor. One way to do this is to return the file descriptor by
> reference. Another is to expect the application to call fileno() and not
> return the descriptor from the new function.

I would prefer the latter of requiring the application to use fileno().

-- 
John Baldwin
Received on Thu Mar 20 2014 - 13:22:05 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:47 UTC