diff options
author | bitblt <bitblt@cvs.openbsd.org> | 1996-12-07 08:18:39 +0000 |
---|---|---|
committer | bitblt <bitblt@cvs.openbsd.org> | 1996-12-07 08:18:39 +0000 |
commit | 5aecc0c00728add21a2bcc0e0f4b3fbed9579e60 (patch) | |
tree | cca4ea9d279b28992e4227d4262545ffc3cfc44b /usr.bin/xstr/xstr.c | |
parent | 957ca030fda5e98a1fb03ebcef50833ae3520c3c (diff) |
Improved temporary file handling.
Diffstat (limited to 'usr.bin/xstr/xstr.c')
-rw-r--r-- | usr.bin/xstr/xstr.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/usr.bin/xstr/xstr.c b/usr.bin/xstr/xstr.c index 7ba2a699eeb..b19f1a85fd8 100644 --- a/usr.bin/xstr/xstr.c +++ b/usr.bin/xstr/xstr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xstr.c,v 1.3 1996/09/16 02:26:20 deraadt Exp $ */ +/* $OpenBSD: xstr.c,v 1.4 1996/12/07 08:18:38 bitblt Exp $ */ /* $NetBSD: xstr.c,v 1.5 1994/12/24 16:57:59 cgd Exp $ */ /* @@ -44,7 +44,7 @@ static char copyright[] = #if 0 static char sccsid[] = "@(#)xstr.c 8.1 (Berkeley) 6/9/93"; #endif -static char rcsid[] = "$OpenBSD: xstr.c,v 1.3 1996/09/16 02:26:20 deraadt Exp $"; +static char rcsid[] = "$OpenBSD: xstr.c,v 1.4 1996/12/07 08:18:38 bitblt Exp $"; #endif /* not lint */ #include <sys/types.h> @@ -86,6 +86,7 @@ main(argc, argv) char *argv[]; { int c; + int fdesc; while ((c = getopt(argc, argv, "-cvl:")) != -1) switch (c) { @@ -115,8 +116,21 @@ main(argc, argv) signal(SIGINT, onintr); if (cflg || argc == 0 && !readstd) inithash(); - else - strings = mktemp(strdup(_PATH_TMPFILE)); + else { + strings = strdup (_PATH_TMPFILE); + if (strings == NULL) { + fprintf(stderr, "Unable to allocate memory: %s", + strerror (errno)); + exit(1); + } + fdesc = mkstemp (strings); + if (fdesc < 0) { + fprintf(stderr, "Unable to create temporary file.\n"); + exit(1); + } + close (fdesc); + } + while (readstd || argc > 0) { if (freopen("x.c", "w", stdout) == NULL) perror("x.c"), exit(1); |