summaryrefslogtreecommitdiff
path: root/ioops.c
diff options
context:
space:
mode:
Diffstat (limited to 'ioops.c')
-rw-r--r--ioops.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/ioops.c b/ioops.c
index c1eeddc..160c74e 100644
--- a/ioops.c
+++ b/ioops.c
@@ -1,6 +1,7 @@
#ifndef _GNU_SOURCE
# define _GNU_SOURCE
#endif
+#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -53,6 +54,15 @@ void create_or_die(const char *file, mode_t mode)
close(fd);
}
+int mkostemp_or_die(char *templ, int flags)
+{
+ /* mode is 0600 (S_IRUSR | S_IWUSR) by default */
+ int fd = mkostemp(templ, flags);
+ if (unlikely(fd < 0))
+ panic("Cannot create unique temporary file! %s\n", strerror(errno));
+ return fd;
+}
+
void pipe_or_die(int pipefd[2], int flags)
{
int ret = pipe2(pipefd, flags);