summaryrefslogtreecommitdiff
path: root/utils/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/utils.c')
-rw-r--r--utils/utils.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/utils/utils.c b/utils/utils.c
index 5c8acd6f0..722e32302 100644
--- a/utils/utils.c
+++ b/utils/utils.c
@@ -32,6 +32,7 @@
#include <regex.h>
#include <time.h>
#include <errno.h>
+#include <unistd.h>
#include "utils/config.h"
#include "utils/log.h"
@@ -628,3 +629,34 @@ nserror nsc_snptimet(char *str, size_t size, time_t *timep)
return NSERROR_OK;
}
+
+#ifndef HAVE_PREAD
+
+ssize_t pread(int fd, void *buf, size_t count, off_t offset)
+{
+ off_t sk;
+
+ sk = lseek(fd, offset, SEEK_SET);
+ if (sk == -1) {
+ return (off_t)-1;
+ }
+ return read(fd, buf, count);
+}
+
+#endif
+
+
+#ifndef HAVE_PWRITE
+
+ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset)
+{
+ off_t sk;
+
+ sk = lseek(fd, offset, SEEK_SET);
+ if (sk == (off_t)-1) {
+ return -1;
+ }
+ return write(fd, buf, count);
+}
+
+#endif