diff options
author | Mikhail Gusarov <dottedmag@dottedmag.net> | 2009-11-08 02:33:15 +0600 |
---|---|---|
committer | Austin Foxley <austinf@cetoncorp.com> | 2009-11-09 15:24:19 -0800 |
commit | 8d74517c1619e3f688ad543717cee25d0b166a6e (patch) | |
tree | ad2a9a1a66b1a8ef63463d94ffe038a6aeee6dee /libc/stdio | |
parent | 45bc2bc53ddb15fb8df194240d232e09b6872b39 (diff) |
Extend __gen_tempname with mode argument
sem_open(3) needs to create a temporary file in a way which can't
be efficiently implemented in terms of POSIX API. Extend
__gen_tempname with mode_t mode argument in order to ease
sem_open implementation.
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
Diffstat (limited to 'libc/stdio')
-rw-r--r-- | libc/stdio/tempnam.c | 2 | ||||
-rw-r--r-- | libc/stdio/tmpfile.c | 3 | ||||
-rw-r--r-- | libc/stdio/tmpnam.c | 2 | ||||
-rw-r--r-- | libc/stdio/tmpnam_r.c | 2 |
4 files changed, 5 insertions, 4 deletions
diff --git a/libc/stdio/tempnam.c b/libc/stdio/tempnam.c index faf7c5ecb..66c905db8 100644 --- a/libc/stdio/tempnam.c +++ b/libc/stdio/tempnam.c @@ -36,7 +36,7 @@ tempnam (const char *dir, const char *pfx) if (__path_search (buf, FILENAME_MAX, dir, pfx, 1)) return NULL; - if (__gen_tempname (buf, __GT_NOCREATE)) + if (__gen_tempname (buf, __GT_NOCREATE, 0)) return NULL; return strdup (buf); diff --git a/libc/stdio/tmpfile.c b/libc/stdio/tmpfile.c index 57f252715..c6b2dc8a9 100644 --- a/libc/stdio/tmpfile.c +++ b/libc/stdio/tmpfile.c @@ -18,6 +18,7 @@ #include <features.h> #include <stdio.h> +#include <sys/stat.h> #include <unistd.h> #include "../misc/internals/tempname.h" #include <not-cancel.h> @@ -35,7 +36,7 @@ FILE * tmpfile (void) if (__path_search (buf, FILENAME_MAX, NULL, "tmpf", 0)) return NULL; - fd = __gen_tempname (buf, __GT_FILE); + fd = __gen_tempname (buf, __GT_FILE, S_IRUSR | S_IWUSR); if (fd < 0) return NULL; diff --git a/libc/stdio/tmpnam.c b/libc/stdio/tmpnam.c index 1f180e08a..323105ba4 100644 --- a/libc/stdio/tmpnam.c +++ b/libc/stdio/tmpnam.c @@ -41,7 +41,7 @@ tmpnam (char *s) 0)) return NULL; - if (__builtin_expect (__gen_tempname (tmpbuf, __GT_NOCREATE), 0)) + if (__builtin_expect (__gen_tempname (tmpbuf, __GT_NOCREATE, 0), 0)) return NULL; if (s == NULL) diff --git a/libc/stdio/tmpnam_r.c b/libc/stdio/tmpnam_r.c index eec589e39..8f616b273 100644 --- a/libc/stdio/tmpnam_r.c +++ b/libc/stdio/tmpnam_r.c @@ -28,7 +28,7 @@ char * tmpnam_r (char *s) if (__path_search (s, L_tmpnam, NULL, NULL, 0)) return NULL; - if (__gen_tempname (s, __GT_NOCREATE)) + if (__gen_tempname (s, __GT_NOCREATE, 0)) return NULL; return s; |