Module Name:    src
Committed By:   christos
Date:           Thu Nov 15 03:50:36 UTC 2012

Modified Files:
        src/lib/libc/stdio: flags.c fopen.3

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


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/lib/libc/stdio/flags.c
cvs rdiff -u -r1.28 -r1.29 src/lib/libc/stdio/fopen.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/stdio/flags.c
diff -u src/lib/libc/stdio/flags.c:1.16 src/lib/libc/stdio/flags.c:1.17
--- src/lib/libc/stdio/flags.c:1.16	Thu Mar 15 14:22:30 2012
+++ src/lib/libc/stdio/flags.c	Wed Nov 14 22:50:36 2012
@@ -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 @@ __sflags(const char *mode, int *optr)
 	 * [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 @@ __sflags(const char *mode, int *optr)
 		case 'e':
 			o |= O_CLOEXEC;
 			break;
+		case 'x':
+			o |= O_EXCL;
+			break;
 		case 'b':
 			break;
 		default:	/* We could produce a warning here */

Index: src/lib/libc/stdio/fopen.3
diff -u src/lib/libc/stdio/fopen.3:1.28 src/lib/libc/stdio/fopen.3:1.29
--- src/lib/libc/stdio/fopen.3:1.28	Mon Jul  2 16:02:43 2012
+++ src/lib/libc/stdio/fopen.3	Wed Nov 14 22:50:36 2012
@@ -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 @@ will fail.
 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

Reply via email to