This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.10-405-g3a83202


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  3a83202db6e5591f2b72974c1ad98602c6620770 (commit)
      from  b47525dd866cbeff9748f532b24a930c7b65d798 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3a83202db6e5591f2b72974c1ad98602c6620770

commit 3a83202db6e5591f2b72974c1ad98602c6620770
Author: Ulrich Drepper <drepper@redhat.com>
Date:   Fri Oct 30 08:02:30 2009 -0700

    Implement mkostemps and mkostemps64.

diff --git a/ChangeLog b/ChangeLog
index 8039e4b..4b4cf1f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-30  Ulrich Drepper  <drepper@redhat.com>
+
+	* misc/mkostemps.c: New file.
+	* misc/mkostemps64.c: New file.
+
 2009-10-30  Andreas Schwab  <schwab@redhat.com>
 
 	* locale/programs/locale-spec.c: Include <error.h> and
diff --git a/NEWS b/NEWS
index 30af08d..500936e 100644
--- a/NEWS
+++ b/NEWS
@@ -7,7 +7,8 @@ using `glibc' in the "product" field.
 
 Version 2.11
 
-* New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64
+* New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps,
+  mkostemps64
   Implemented by Ulrich Drepper.
 
 * Checking version of longjmp added that fails if an uninitialized stack
diff --git a/misc/Makefile b/misc/Makefile
index 6243647..ee69361 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -45,7 +45,7 @@ routines := brk sbrk sstk ioctl \
 	    gethostid sethostid \
 	    revoke vhangup \
 	    swapon swapoff mktemp mkstemp mkstemp64 mkdtemp \
-	    mkostemp mkostemp64 mkstemps mkstemps64 \
+	    mkostemp mkostemp64 mkstemps mkstemps64 mkostemps mkostemps64 \
 	    ualarm usleep \
 	    gtty stty \
 	    ptrace \
diff --git a/misc/Versions b/misc/Versions
index b883e3d..3ffe3d1 100644
--- a/misc/Versions
+++ b/misc/Versions
@@ -141,6 +141,6 @@ libc {
     preadv; preadv64; pwritev; pwritev64;
   }
   GLIBC_2.11 {
-    mkstemps; mkstemps64;
+    mkstemps; mkstemps64; mkostemps; mkostemps64;
   }
 }
diff --git a/misc/mkostemps.c b/misc/mkostemps.c
new file mode 100644
index 0000000..0303672
--- /dev/null
+++ b/misc/mkostemps.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 2009 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifndef __GT_FILE
+# define __GT_FILE 0
+#endif
+
+/* Generate a unique temporary file name from TEMPLATE.  The last six
+   characters before a suffix of length SUFFIXLEN 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
+mkostemps (template, suffixlen, flags)
+     char *template;
+     int suffixlen;
+     int flags;
+{
+  if (suffixlen < 0)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  return __gen_tempname (template, suffixlen, flags, __GT_FILE);
+}
diff --git a/misc/mkostemps64.c b/misc/mkostemps64.c
new file mode 100644
index 0000000..0c6a2e7
--- /dev/null
+++ b/misc/mkostemps64.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 2000, 2007, 2009 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+/* Generate a unique temporary file name from TEMPLATE.  The last six
+   characters before a suffix of length SUFFIXLEN 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
+mkostemps64 (template, suffixlen, flags)
+     char *template;
+     int suffixlen;
+     int flags;
+{
+  if (suffixlen < 0)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  return __gen_tempname (template, suffixlen, flags | O_LARGEFILE, __GT_FILE);
+}
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index 6fe6a03..dc51d67 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -678,6 +678,29 @@ extern int __REDIRECT (mkostemp, (char *__template, int __flags), mkostemp64)
 # ifdef __USE_LARGEFILE64
 extern int mkostemp64 (char *__template, int __flags) __nonnull ((1)) __wur;
 # endif
+
+/* Similar to mkostemp, but the template can have a suffix after the
+   XXXXXX.  The length of the suffix is specified in the second
+   parameter.
+
+   This function is a possible cancellation point and therefore not
+   marked with __THROW.  */
+# ifndef __USE_FILE_OFFSET64
+extern int mkostemps (char *__template, int __suffixlen, int __flags)
+     __nonnull ((1)) __wur;
+# else
+#  ifdef __REDIRECT
+extern int __REDIRECT (mkostemps, (char *__template, int __suffixlen,
+				   int __flags), mkostemps64)
+     __nonnull ((1)) __wur;
+#  else
+#   define mkostemps mkostemps64
+#  endif
+# endif
+# ifdef __USE_LARGEFILE64
+extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
+     __nonnull ((1)) __wur;
+# endif
 #endif
 
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                            |    5 +++++
 NEWS                                 |    3 ++-
 misc/Makefile                        |    2 +-
 misc/Versions                        |    2 +-
 misc/{mkstemps.c => mkostemps.c}     |    5 +++--
 misc/{mkstemps64.c => mkostemps64.c} |    5 +++--
 stdlib/stdlib.h                      |   23 +++++++++++++++++++++++
 7 files changed, 38 insertions(+), 7 deletions(-)
 copy misc/{mkstemps.c => mkostemps.c} (91%)
 copy misc/{mkstemps64.c => mkostemps64.c} (90%)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]