diff options
Diffstat (limited to 'src/libbio')
-rw-r--r-- | src/libbio/binit.c | 4 | ||||
-rw-r--r-- | src/libbio/boffset.c | 4 | ||||
-rw-r--r-- | src/libbio/bseek.c | 6 | ||||
-rw-r--r-- | src/libbio/lib9.std.h | 8 |
4 files changed, 14 insertions, 8 deletions
diff --git a/src/libbio/binit.c b/src/libbio/binit.c index 1a8c252c..8ec375ce 100644 --- a/src/libbio/binit.c +++ b/src/libbio/binit.c @@ -122,13 +122,13 @@ Bopen(char *name, int mode) return 0; case OREAD: - f = open(name, OREAD); + f = open(name, mode); if(f < 0) return 0; break; case OWRITE: - f = creat(name, 0666); + f = create(name, mode, 0666); if(f < 0) return 0; } diff --git a/src/libbio/boffset.c b/src/libbio/boffset.c index df28aaf7..88c4c358 100644 --- a/src/libbio/boffset.c +++ b/src/libbio/boffset.c @@ -1,10 +1,10 @@ #include "lib9.h" #include <bio.h> -off_t +vlong Boffset(Biobuf *bp) { - off_t n; + vlong n; switch(bp->state) { default: diff --git a/src/libbio/bseek.c b/src/libbio/bseek.c index 4e79affd..b3f8191a 100644 --- a/src/libbio/bseek.c +++ b/src/libbio/bseek.c @@ -1,8 +1,8 @@ #include "lib9.h" #include <bio.h> -off_t -Bseek(Biobuf *bp, off_t offset, int base) +long long +Bseek(Biobuf *bp, long long offset, int base) { vlong n, d; int bufsz; @@ -52,7 +52,7 @@ Bseek(Biobuf *bp, off_t offset, int base) case Bwactive: Bflush(bp); - n = lseek(bp->fid, offset, base); + n = seek(bp->fid, offset, base); break; } bp->offset = n; diff --git a/src/libbio/lib9.std.h b/src/libbio/lib9.std.h index 44218fd6..180471e1 100644 --- a/src/libbio/lib9.std.h +++ b/src/libbio/lib9.std.h @@ -1,3 +1,6 @@ +#define _FILE_OFFSET_BITS 64 +#define _LARGEFILE64_SOURCE + #include <utf.h> #include <fmt.h> @@ -13,8 +16,11 @@ #define ORCLOSE 0 #define OTRUNC 0 - #define nil ((void*)0) typedef long long vlong; typedef unsigned long long uvlong; + +#define seek(fd, offset, whence) lseek(fd, offset, whence) +#define create(name, mode, perm) creat(name, perm) + |