source: branches/libc-0.6/src/binutils/libiberty/choose-temp.c

Last change on this file 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: 2.0 KB
Line 
1/* Utility to pick a temporary filename prefix.
2 Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
3
4This file is part of the libiberty library.
5Libiberty is free software; you can redistribute it and/or
6modify it under the terms of the GNU Library General Public
7License as published by the Free Software Foundation; either
8version 2 of the License, or (at your option) any later version.
9
10Libiberty is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13Library General Public License for more details.
14
15You should have received a copy of the GNU Library General Public
16License along with libiberty; see the file COPYING.LIB. If not,
17write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18Boston, MA 02111-1307, USA. */
19
20#ifdef HAVE_CONFIG_H
21#include "config.h"
22#endif
23
24#include <stdio.h> /* May get P_tmpdir. */
25#ifdef HAVE_STDLIB_H
26#include <stdlib.h>
27#endif
28#ifdef HAVE_STRING_H
29#include <string.h>
30#endif
31
32#include "libiberty.h"
33extern char *choose_tmpdir PARAMS ((void));
34
35/* Name of temporary file.
36 mktemp requires 6 trailing X's. */
37#define TEMP_FILE "ccXXXXXX"
38#define TEMP_FILE_LEN (sizeof(TEMP_FILE) - 1)
39
40/*
41
42@deftypefn Extension char* choose_temp_base (void)
43
44Return a prefix for temporary file names or @code{NULL} if unable to
45find one. The current directory is chosen if all else fails so the
46program is exited if a temporary directory can't be found (@code{mktemp}
47fails). The buffer for the result is obtained with @code{xmalloc}.
48
49This function is provided for backwards compatability only. Its use is
50not recommended.
51
52@end deftypefn
53
54*/
55
56char *
57choose_temp_base ()
58{
59 const char *base = choose_tmpdir ();
60 char *temp_filename;
61 int len;
62
63 len = strlen (base);
64 temp_filename = xmalloc (len + TEMP_FILE_LEN + 1);
65 strcpy (temp_filename, base);
66 strcpy (temp_filename + len, TEMP_FILE);
67
68 mktemp (temp_filename);
69 if (strlen (temp_filename) == 0)
70 abort ();
71 return temp_filename;
72}
Note: See TracBrowser for help on using the repository browser.