/*- * Copyright (c) 1982, 1988 The Regents of the University of California. * All rights reserved. * * %sccs.include.proprietary.c% * * @(#)lseek.c 7.3 (Berkeley) 05/24/93 */ #include #include off_t lseek(fdesc, addr, ptr) int fdesc, ptr; off_t addr; { register struct iob *io; #ifndef SMALL if (ptr != L_SET) { printf("Seek not from beginning of file\n"); errno = EOFFSET; return (-1); } #endif fdesc -= 3; #ifndef SMALL if (fdesc < 0 || fdesc >= SOPEN_MAX || ((io = &iob[fdesc])->i_flgs & F_ALLOC) == 0) { errno = EBADF; return (-1); } #endif io->i_offset = addr; io->i_bn = addr / DEV_BSIZE; io->i_cc = 0; return (0); }