]> git.scottworley.com Git - overonion/blob - temp_file.c
set -e doesn't catch failures inside <()
[overonion] / temp_file.c
1 #define _GNU_SOURCE
2
3 #include "temp_file.h"
4
5 #include <err.h>
6 #include <stdlib.h>
7 #include <stdio.h>
8 #include <sysexits.h>
9
10 void make_temporary_file(char** temp_filename, FILE** temp_file) {
11 char* TMPDIR = getenv("TMPDIR");
12 if (TMPDIR == NULL) {
13 TMPDIR = "/tmp";
14 }
15 if (asprintf(temp_filename, "%s/reverse.XXXXXX", TMPDIR) == -1) {
16 errx(EX_OSERR, "Could not assemble temporary filename");
17 }
18 int fd = mkstemp(*temp_filename);
19 if (fd == -1) err(EX_IOERR, "Could not make a temporary file");
20 *temp_file = fdopen(fd, "w");
21 if (*temp_file == NULL) err(EX_IOERR, "Could not open temporary file");
22 }