glibc/stdio-common/tmpfile.c
Ulrich Drepper 2e65ca2b22 Update.
1999-07-06  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/alpha/ioperm.c: Update for some more
	motherboards.
	Patch by Jay Estabrook.

	* sysdeps/unix/sysv/linux/configure.in: Don't test for libc4 in
	ldd for SPARC.
	* /sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed: New file.
	Patch by Cristian Gafton.

1999-07-02  Cristian Gafton  <gafton@redhat.com>

	* sysdeps/unix/sysv/linux/bits/socket.h (__cmsg_nxthdr): "return 0"
	instead of "return NULL" to make C++ happy.

1999-07-04  Mark Kettenis  <kettenis@gnu.org>

	* libio/iofdopen.c (_IO_new_fdopen): Set EINVAL if MODE is not
	allowed by the file access mode of the open file.

1999-07-06  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/setfpucw.c: Include math.h to get all needed
	macros defined.

1999-07-03  Jakub Jelinek   <jj@ultra.linux.cz>

	* sysdeps/sparc/sparc64/submul_1.S: Fix carry handling. Optimize.
	* sysdeps/sparc/sparc64/lshift.S: Make a leaf subroutine. Optimize.
	* sysdeps/sparc/sparc64/rshift.S: Likewise.
	* sysdeps/sparc/sparc64/mul_1.S: Optimize.

1999-07-04  Wolfram Gloger  <wmglo@dent.med.uni-muenchen.de>

	* malloc/malloc.c (request2size): Check for overflow and return
	NULL whenever it is encountered.

1999-07-04  Zack Weinberg  <zack@rabi.columbia.edu>

	* sysdeps/posix/tempname.c (__gen_tempname):   Add
	ability to create directories.  Replace OPENIT and LARGEFILE
	args with a single flags parameter.
	* sysdeps/generic/tempname.c: Likewise.
	* include/stdio.h: Adjust prototype of __gen_tempname to
	match.  Define symbolic constants for second argument.

	* misc/mkdtemp.c: New file, provides new function mkdtemp().
	* stdlib/stdlib.h: Prototype it.
	* misc/Versions: Export it.
	* misc/Makefile (routines): Add mktemp.
	* manual/filesys.texi: Document it.

	* misc/mktemp.c: Adjust call of __gen_tempname to match new
	convention.
	* misc/mkstemp.c: Likewise.
	* stdio-common/tempnam.c: Likewise.
	* stdio-common/tmpfile.c: Likewise.
	* stdio-common/tmpfile64.c: Likewise.
	* stdio-common/tmpnam.c: Likewise.
	* stdio-common/tmpnam_r.c: Likewise.

1999-07-05  Jakub Jelinek   <jj@ultra.linux.cz>

	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Support
	R_SPARC_OLO10 relocations.
	* elf/elf.h (R_SPARC_OLO10): Fix comment.
1999-07-06 16:26:03 +00:00

65 lines
1.9 KiB
C

/* Copyright (C) 1991,1993,1996,1997,1998,1999 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 <unistd.h>
#ifdef USE_IN_LIBIO
# include <iolibio.h>
# define __fdopen _IO_fdopen
# define tmpfile __new_tmpfile
#endif
/* This returns a new stream opened on a temporary file (generated
by tmpnam). The file is opened with mode "w+b" (binary read/write).
If we couldn't generate a unique filename or the file couldn't
be opened, NULL is returned. */
FILE *
tmpfile (void)
{
char buf[FILENAME_MAX];
int fd;
FILE *f;
if (__path_search (buf, FILENAME_MAX, NULL, "tmpf", 0))
return NULL;
fd = __gen_tempname (buf, __GT_FILE);
if (fd < 0)
return NULL;
/* Note that this relies on the Unix semantics that
a file is not really removed until it is closed. */
(void) remove (buf);
if ((f = __fdopen (fd, "w+b")) == NULL)
__close (fd);
return f;
}
#ifdef USE_IN_LIBIO
# undef tmpfile
# if defined PIC && DO_VERSIONING
default_symbol_version (__new_tmpfile, tmpfile, GLIBC_2.1);
# else
# ifdef weak_alias
weak_alias (__new_tmpfile, tmpfile)
# endif
# endif
#endif