aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/skalibs/djbunix.h2
-rw-r--r--src/libstddjb/fd_sanitize.c13
2 files changed, 14 insertions, 1 deletions
diff --git a/src/include/skalibs/djbunix.h b/src/include/skalibs/djbunix.h
index 0304ce8..29e37d2 100644
--- a/src/include/skalibs/djbunix.h
+++ b/src/include/skalibs/djbunix.h
@@ -31,7 +31,7 @@ extern int fd_sync (int) ;
extern off_t fd_cat (int, int) ;
extern off_t fd_catn (int, int, off_t) ;
extern int fd_ensure_open (int, int) ;
-#define fd_sanitize() (fd_ensure_open(0, 0) && fd_ensure_open(1, 1) && fd_ensure_open(2, 1))
+extern void fd_sanitize (void) ;
extern void fd_shutdown (int, int) ;
extern int fd_lock (int, int, int) ;
diff --git a/src/libstddjb/fd_sanitize.c b/src/libstddjb/fd_sanitize.c
new file mode 100644
index 0000000..d9349cc
--- /dev/null
+++ b/src/libstddjb/fd_sanitize.c
@@ -0,0 +1,13 @@
+/* ISC license. */
+
+#include <unistd.h>
+
+#include <skalibs/strerr.h>
+#include <skalibs/djbunix.h>
+
+void fd_sanitize (void)
+{
+ if (!fd_ensure_open(2, 1)) _exit(111) ;
+ if (!fd_ensure_open(1, 1)) strerr_diefu3sys(111, "ensure std", "out", " is open") ;
+ if (!fd_ensure_open(0, 0)) strerr_diefu3sys(111, "ensure std", "in", " is open") ;
+}