summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--misc/Makefile2
-rw-r--r--misc/Versions2
-rw-r--r--misc/mkstemp64.c31
-rw-r--r--stdlib/stdlib.h11
5 files changed, 51 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 0541977d0a..59ac512794 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2000-09-26  Andreas Jaeger  <aj@suse.de>
+
+	* misc/mkstemp64.c: New file.
+	* misc/Makefile (routines): Add mkstemp64.
+	* stdlib/stdlib.h: Add prototype and redirection magic.
+	* misc/Versions: Add mkstemp64.
+
 2000-09-26  Thorsten Kukuk  <kukuk@suse.de>
 
 	* nscd/dbg_log.c (dbg_log): Add missing format string.
diff --git a/misc/Makefile b/misc/Makefile
index 98d6942fda..a6bd90d46e 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -42,7 +42,7 @@ routines := brk sbrk sstk ioctl \
 	    acct chroot fsync sync fdatasync reboot \
 	    gethostid sethostid \
 	    revoke vhangup \
-	    swapon swapoff mktemp mkstemp mkdtemp \
+	    swapon swapoff mktemp mkstemp mkstemp64 mkdtemp \
 	    ualarm usleep \
 	    gtty stty \
 	    ptrace \
diff --git a/misc/Versions b/misc/Versions
index 0e32c23c9e..d9b596bd20 100644
--- a/misc/Versions
+++ b/misc/Versions
@@ -107,7 +107,7 @@ libc {
     getloadavg;
 
     # m*
-    mincore; mkdtemp;
+    mincore; mkdtemp; mkstemp64;
 
     # p*
     posix_madvise;
diff --git a/misc/mkstemp64.c b/misc/mkstemp64.c
new file mode 100644
index 0000000000..0a4a85bf83
--- /dev/null
+++ b/misc/mkstemp64.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* Generate a unique temporary file name from TEMPLATE.
+   The last six characters of TEMPLATE must be "XXXXXX";
+   they are replaced with a string that makes the filename unique.
+   Then open the file and return a fd. */
+int
+mkstemp64 (template)
+     char *template;
+{
+  return __gen_tempname (template, __GT_BIGFILE);
+}
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index 075f47cd9d..a9577e399d 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -628,7 +628,18 @@ extern char *mktemp (char *__template) __THROW;
    they are replaced with a string that makes the filename unique.
    Returns a file descriptor open on the file for reading and writing,
    or -1 if it cannot create a uniquely-named file.  */
+# ifndef __USE_FILE_OFFSET64
 extern int mkstemp (char *__template) __THROW;
+# else
+#  ifdef __REDIRECT
+extern int __REDIRECT (mkstemp, (char *__template) __THROW, mkstemp64);
+#  else
+#   define mkstemp mkstemp64
+#  endif
+# endif
+# ifdef __USE_LARGEFILE64
+extern int mkstemp64 (char *__template) __THROW;
+# endif
 #endif
 
 #ifdef __USE_BSD