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