summaryrefslogtreecommitdiff
path: root/libc/stdio
diff options
context:
space:
mode:
authorMikhail Gusarov <dottedmag@dottedmag.net>2009-11-08 02:33:15 +0600
committerAustin Foxley <austinf@cetoncorp.com>2009-11-09 15:24:19 -0800
commit8d74517c1619e3f688ad543717cee25d0b166a6e (patch)
treead2a9a1a66b1a8ef63463d94ffe038a6aeee6dee /libc/stdio
parent45bc2bc53ddb15fb8df194240d232e09b6872b39 (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.c2
-rw-r--r--libc/stdio/tmpfile.c3
-rw-r--r--libc/stdio/tmpnam.c2
-rw-r--r--libc/stdio/tmpnam_r.c2
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;