musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
path: root/src/stdio/fopen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stdio/fopen.c')
-rw-r--r--src/stdio/fopen.c 4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/stdio/fopen.c b/src/stdio/fopen.c
index 084cc73c..0d5b1af2 100644
--- a/src/stdio/fopen.c
+++ b/src/stdio/fopen.c
@@ -5,7 +5,6 @@ FILE *fopen(const char *filename, const char *mode)
FILE *f;
int fd;
int flags;
- int plus = !!strchr(mode, '+');
/* Check for valid initial mode character */
if (!strchr("rwa", *mode)) {
@@ -14,9 +13,10 @@ FILE *fopen(const char *filename, const char *mode)
}
/* Compute the flags to pass to open() */
- if (plus) flags = O_RDWR;
+ if (strchr(mode, '+')) flags = O_RDWR;
else if (*mode == 'r') flags = O_RDONLY;
else flags = O_WRONLY;
+ if (strchr(mode, 'x')) flags |= O_EXCL;
if (*mode != 'r') flags |= O_CREAT;
if (*mode == 'w') flags |= O_TRUNC;
if (*mode == 'a') flags |= O_APPEND;
generated by cgit v1.2.1 (git 2.18.0) at 2025年09月10日 05:55:17 +0000

AltStyle によって変換されたページ (->オリジナル) /