blob: df08fb83ee6d1026e171b31982aefdba821d85f1 [file] [log] [blame] [raw]
/*
Copyright: Boaz Segev, 2018
License: MIT
*/
#ifndef H_FIO_TMPFILE_H
/** a simple helper to create temporary files and file names */
#define H_FIO_TMPFILE_H
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
static inline int fio_tmpfile(void) {
// create a temporary file to contain the data.
int fd = 0;
#ifdef P_tmpdir
if (P_tmpdir[sizeof(P_tmpdir) - 1] == '/') {
char name_template[] = P_tmpdir "facil_io_tmpfile_XXXXXXXX";
fd = mkstemp(name_template);
} else {
char name_template[] = P_tmpdir "/facil_io_tmpfile_XXXXXXXX";
fd = mkstemp(name_template);
}
#else
char name_template[] = "/tmp/facil_io_tmpfile_XXXXXXXX";
fd = mkstemp(name_template);
#endif
return fd;
}
#endif