[RFC v1] man/man2/close.2: CAVEATS: Document divergence from POSIX.1-2024
Vincent Lefevre
vincent@vinc17.net
Fri May 16 14:39:57 GMT 2025
On 2025-05-16 09:05:47 -0400, Rich Felker wrote:
> FWIW musl adopted the EINPROGRESS as soon as we were made aware of the
> issue, and later changed it to returning 0 since applications
> (particularly, any written prior to this interpretation) are prone to
> interpret EINPROGRESS as an error condition rather than success and
> possibly misinterpret it as meaning the fd is still open and valid to
> pass to close again.
If I understand correctly, this is a poor choice. POSIX.1-2024 says:
ERRORS
The close() and posix_close() functions shall fail if:
[...]
[EINPROGRESS]
The function was interrupted by a signal and fildes was closed
but the close operation is continuing asynchronously.
But this does not mean that the asynchronous close operation will
succeed.
So the application could incorrectly deduce that the close operation
was done without any error.
--
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Pascaline project (LIP, ENS-Lyon)
More information about the Libc-alpha
mailing list