Source-Changes-HG archive

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

[src/trunk]: src/lib/libc/stdio Add 'x' to the mode bits to specify O_EXCL, l...



details:   https://anonhg.NetBSD.org/src/rev/ea2e4419baee
branches:  trunk
changeset: 782698:ea2e4419baee
user:      christos <christos%NetBSD.org@localhost>
date:      Thu Nov 15 03:50:36 2012 +0000

description:
Add 'x' to the mode bits to specify O_EXCL, like glibc.

diffstat:

 lib/libc/stdio/flags.c |   8 ++++++--
 lib/libc/stdio/fopen.3 |  10 ++++++++--
 2 files changed, 14 insertions(+), 4 deletions(-)

diffs (67 lines):

diff -r fdb0b974bc26 -r ea2e4419baee lib/libc/stdio/flags.c
--- a/lib/libc/stdio/flags.c    Wed Nov 14 23:25:05 2012 +0000
+++ b/lib/libc/stdio/flags.c    Thu Nov 15 03:50:36 2012 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: flags.c,v 1.16 2012/03/15 18:22:30 christos Exp $      */
+/*     $NetBSD: flags.c,v 1.17 2012/11/15 03:50:36 christos Exp $      */
 
 /*-
  * Copyright (c) 1990, 1993
@@ -37,7 +37,7 @@
 #if 0
 static char sccsid[] = "@(#)flags.c    8.1 (Berkeley) 6/4/93";
 #else
-__RCSID("$NetBSD: flags.c,v 1.16 2012/03/15 18:22:30 christos Exp $");
+__RCSID("$NetBSD: flags.c,v 1.17 2012/11/15 03:50:36 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -90,6 +90,7 @@
         * [rwa]\+ or [rwa]b\+ means read and write 
         * f means open only plain files,
         * e means set close on exec.
+        * x means exclusive open.
         */
        for (; *mode; mode++)
                switch (*mode) {
@@ -103,6 +104,9 @@
                case 'e':
                        o |= O_CLOEXEC;
                        break;
+               case 'x':
+                       o |= O_EXCL;
+                       break;
                case 'b':
                        break;
                default:        /* We could produce a warning here */
diff -r fdb0b974bc26 -r ea2e4419baee lib/libc/stdio/fopen.3
--- a/lib/libc/stdio/fopen.3    Wed Nov 14 23:25:05 2012 +0000
+++ b/lib/libc/stdio/fopen.3    Thu Nov 15 03:50:36 2012 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: fopen.3,v 1.28 2012/07/02 20:02:43 wiz Exp $
+.\"    $NetBSD: fopen.3,v 1.29 2012/11/15 03:50:36 christos Exp $
 .\"
 .\" Copyright (c) 1990, 1991, 1993
 .\"    The Regents of the University of California.  All rights reserved.
@@ -33,7 +33,7 @@
 .\"
 .\"     @(#)fopen.3    8.1 (Berkeley) 6/4/93
 .\"
-.Dd July 18, 2011
+.Dd November 14, 2012
 .Dt FOPEN 3
 .Os
 .Sh NAME
@@ -117,6 +117,12 @@
 This is a non
 .St -ansiC
 extension.
+.It Sq x
+The letter
+.Sq x
+in the mode turns on exclusive open mode to the file (
+.Dv O_EXCL )
+which means that the file will not be created if it already exists.
 .El
 .Pp
 Any created files will have mode



Home | Main Index | Thread Index | Old Index