manual: fopen with the x flag does not follow ISO C11

Message ID 8be178b8-01fa-6969-970b-10a2b7a01134@cs.ucla.edu
State Committed
Headers

Commit Message

Paul Eggert Dec. 11, 2019, 5:42 p.m. UTC
  On 12/11/19 1:53 AM, Florian Weimer wrote:
> I'm not sure about the “common practice” part.  This would need
> checking.  I would just drop it.

Sure, that's fine. I installed the attached.

I left the "ISO C11" vs "ISO C" issue for some later time.
  

Comments

Florian Weimer Dec. 11, 2019, 5:46 p.m. UTC | #1
* Paul Eggert:

> -The @samp{x} modifier is part of @w{ISO C11}.
> +The @samp{x} modifier is part of @w{ISO C11}, which says the file is
> +created with exclusive access; in @theglibc{} this means the
> +equivalent of @code{O_EXCL}.

This looks good to me, thanks.

Florian
  
Zack Weinberg Dec. 11, 2019, 6:43 p.m. UTC | #2
On Wed, Dec 11, 2019 at 12:42 PM Paul Eggert <eggert@cs.ucla.edu> wrote:
>
> I left the "ISO C11" vs "ISO C" issue for some later time.

I think it's important for the manual to document which revision of
the C standard a feature was added in, for everything that's newer
than C1999.  I could even argue for C1989.

zw
  
Joseph Myers Dec. 11, 2019, 9:38 p.m. UTC | #3
On Wed, 11 Dec 2019, Zack Weinberg wrote:

> On Wed, Dec 11, 2019 at 12:42 PM Paul Eggert <eggert@cs.ucla.edu> wrote:
> >
> > I left the "ISO C11" vs "ISO C" issue for some later time.
> 
> I think it's important for the manual to document which revision of
> the C standard a feature was added in, for everything that's newer
> than C1999.  I could even argue for C1989.

However, it should generally not try to distinguish between bug-fix 
variants of the same standard version (such as the 2011 and 2018 editions 
of ISO C, or the 2008, 2013, 2016 and 2018 editions of POSIX).  (There may 
be rare exceptions, e.g. where some interface was marked obsolescent in a 
bug-fix revision, as was the case with ATOMIC_VAR_INIT in the 2018 edition 
of ISO C.)
  
Rafal Luzynski Dec. 11, 2019, 9:41 p.m. UTC | #4
11.12.2019 19:43 Zack Weinberg <zackw@panix.com> wrote:
> [...]
> I think it's important for the manual to document which revision of
> the C standard a feature was added in, for everything that's newer
> than C1999.  I could even argue for C1989.

FWIW, I agree.  It's good to know whether a feature is old and it's
safe to assume it's going to work on all systems vs. it's rather new
and requires a newer system.

Regards,

Rafal
  

Patch

From ef4e158c736d067304164c3daa763e4f425af248 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Wed, 11 Dec 2019 09:34:06 -0800
Subject: [PATCH] manual: clarify fopen with the x flag

* manual/stdio.texi (Opening Streams): Say how glibc's
implementation of fopen with "x" follows ISO C11.
---
 manual/stdio.texi | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/manual/stdio.texi b/manual/stdio.texi
index bbd3061bab..8051603321 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -216,7 +216,9 @@  exists, @code{fopen} fails rather than opening it.  If you use
 file.  This is equivalent to the @code{O_EXCL} option to the
 @code{open} function (@pxref{Opening and Closing Files}).
 
-The @samp{x} modifier is part of @w{ISO C11}.
+The @samp{x} modifier is part of @w{ISO C11}, which says the file is
+created with exclusive access; in @theglibc{} this means the
+equivalent of @code{O_EXCL}.
 @end table
 
 The character @samp{b} in @var{opentype} has a standard meaning; it
-- 
2.23.0