time.c
unlock.c
write.c
+seek.c
CFLAGS = $(INCLUDES) -O
OBJ = access.o break.o chmode.o close.o create.o filesize.o \
modtime.o lock.o open.o read.o remove.o stop.o \
- system.o time.o unlock.o write.o
+ system.o time.o unlock.o write.o seek.o
CSRC = access.c break.c chmode.c close.c create.c filesize.c \
modtime.c lock.c open.c read.c remove.c stop.c \
- system.c time.c unlock.c write.c
+ system.c time.c unlock.c write.c seek.c
SRC = Makefile system.h $(CSRC)
all: $(LIBSYS)
--- /dev/null
+/*
+ * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
+ * See the copyright notice in the ACK home directory, in the file "Copyright".
+ */
+/* $Header$ */
+
+#include <system.h>
+
+long lseek();
+
+int
+sys_seek(fp, off, whence, poff)
+ File *fp;
+ long off;
+ long *poff;
+{
+ return (*poff = lseek(fp->o_fd, off, whence)) >= 0;
+}
.B char *bufptr;
.B int nbytes;
.PP
+.B int sys_seek(filep, offset, whence, poffset)
+.B File *filep;
+.B long offset;
+.B int whence;
+.B long *poffset;
+.PP
.B int sys_reset(filep)
.B File *filep
.PP
.I nbytes
are actually written.
.PP
+.I Sys_seek
+sets the file pointer of
+.I filep
+as follows:
+.IP " "
+If
+.I whence
+is 0, the pointer is set to
+.I offset
+bytes.
+.IP " "
+If
+.I whence
+is 1, the pointer is set to its current location plus
+.IR offset .
+.IP " "
+If
+.I whence
+is 2, the pointer is set to the size of the file plus
+.IR offset .
+.PP
+Upon succesful completion, the resulting pointer location is returned in
+.IR poffset ,
+and 1 is returned. Otherwise, 0 is returned.
+.PP
.I Sys_reset
causes the open file known by
.I filep