diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/include/skalibs/djbunix.h | 2 | ||||
| -rw-r--r-- | src/libstddjb/fd_sanitize.c | 13 |
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") ; +} |
