aboutsummaryrefslogtreecommitdiff
path: root/test-skeleton.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-07-22 22:18:27 +0000
committerUlrich Drepper <drepper@redhat.com>2002-07-22 22:18:27 +0000
commit10e62564606e5c51d0d3426d1f26ad4aaa34b70a (patch)
tree9664a4e3ab9a773d802881ccb41f29711f8efff8 /test-skeleton.c
parentbb379770049386cd7996bcbe3938dd4f17a88343 (diff)
downloadglibc-10e62564606e5c51d0d3426d1f26ad4aaa34b70a.zip
glibc-10e62564606e5c51d0d3426d1f26ad4aaa34b70a.tar.gz
glibc-10e62564606e5c51d0d3426d1f26ad4aaa34b70a.tar.bz2
(create_temp_file): New function.
Diffstat (limited to 'test-skeleton.c')
-rw-r--r--test-skeleton.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/test-skeleton.c b/test-skeleton.c
index c1fa96c..3216b94 100644
--- a/test-skeleton.c
+++ b/test-skeleton.c
@@ -1,5 +1,5 @@
/* Skeleton for test programs.
- Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -90,6 +90,38 @@ delete_temp_files (void)
}
}
+/* Create a temporary file. */
+static int
+__attribute__ ((unused))
+create_temp_file (const char *base, char **filename)
+{
+ char *fname;
+ int fd;
+
+ fname = (char *) malloc (strlen (test_dir) + 1 + strlen (base)
+ + sizeof ("XXXXXX"));
+ if (fname == NULL)
+ {
+ puts ("out of memory");
+ return -1;
+ }
+ strcpy (stpcpy (stpcpy (stpcpy (fname, test_dir), "/"), base), "XXXXXX");
+
+ fd = mkstemp (fname);
+ if (fd == -1)
+ {
+ printf ("cannot open temporary file '%s': %m\n", fname);
+ free (fname);
+ return -1;
+ }
+
+ add_temp_file (fname);
+ if (filename != NULL)
+ *filename = fname;
+
+ return fd;
+}
+
/* Timeout handler. We kill the child and exit with an error. */
static void
__attribute__ ((noreturn))