diff options
Diffstat (limited to 'src/libunixonacid/open3_at.c')
-rw-r--r-- | src/libunixonacid/open3_at.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libunixonacid/open3_at.c b/src/libunixonacid/open3_at.c index d4234d4..063092d 100644 --- a/src/libunixonacid/open3_at.c +++ b/src/libunixonacid/open3_at.c @@ -9,12 +9,18 @@ #endif #include <skalibs/nonposix.h> + +#include <errno.h> #include <fcntl.h> + #include <skalibs/unix-transactional.h> int open3_at (int dirfd, char const *file, int flags, unsigned int mode) { - return openat(dirfd, file, flags, mode) ; + int fd ; + do fd = openat(dirfd, file, flags, mode) ; + while (fd == -1 && errno == EINTR) ; + return fd ; } #else |