source: trunk/binutils/libiberty/mkstemps.c@ 2494

Last change on this file since 2494 was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 3.6 KB
Line 
1/* Copyright (C) 1991, 1992, 1996, 1998 Free Software Foundation, Inc.
2 This file is derived from mkstemp.c from the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public License as
6 published by the Free Software Foundation; either version 2 of the
7 License, or (at your option) any later version.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public
15 License along with the GNU C Library; see the file COPYING.LIB. If not,
16 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 Boston, MA 02111-1307, USA. */
18
19#ifdef HAVE_CONFIG_H
20#include "config.h"
21#endif
22
23#include <sys/types.h>
24#ifdef HAVE_STDLIB_H
25#include <stdlib.h>
26#endif
27#ifdef HAVE_STRING_H
28#include <string.h>
29#endif
30#include <errno.h>
31#include <stdio.h>
32#include <fcntl.h>
33#ifdef HAVE_UNISTD_H
34#include <unistd.h>
35#endif
36#ifdef HAVE_SYS_TIME_H
37#include <sys/time.h>
38#endif
39#include "ansidecl.h"
40
41/* We need to provide a type for gcc_uint64_t. */
42#ifdef __GNUC__
43__extension__ typedef unsigned long long gcc_uint64_t;
44#else
45typedef unsigned long gcc_uint64_t;
46#endif
47
48#ifndef TMP_MAX
49#define TMP_MAX 16384
50#endif
51
52/*
53
54@deftypefn Replacement int mkstemps (char *@var{template}, int @var{suffix_len})
55
56Generate a unique temporary file name from @var{template}.
57@var{template} has the form:
58
59@example
60 @var{path}/ccXXXXXX@var{suffix}
61@end example
62
63@var{suffix_len} tells us how long @var{suffix} is (it can be zero
64length). The last six characters of @var{template} before @var{suffix}
65must be @samp{XXXXXX}; they are replaced with a string that makes the
66filename unique. Returns a file descriptor open on the file for
67reading and writing.