From owner-freebsd-hackers Sun Apr 11 18: 4:32 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from lestat.nas.nasa.gov (lestat.nas.nasa.gov [129.99.50.29]) by hub.freebsd.org (Postfix) with ESMTP id 734AB14CAE for ; Sun, 11 Apr 1999 18:04:31 -0700 (PDT) (envelope-from thorpej@lestat.nas.nasa.gov) Received: from lestat (localhost [127.0.0.1]) by lestat.nas.nasa.gov (8.8.8/8.6.12) with ESMTP id SAA24587; Sun, 11 Apr 1999 18:02:09 -0700 (PDT) Message-Id: <199904120102.SAA24587@lestat.nas.nasa.gov> To: jwm@CSUA.Berkeley.EDU Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: read() and pread() syscalls Reply-To: Jason Thorpe From: Jason Thorpe Date: Sun, 11 Apr 1999 18:02:08 -0700 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Sun, 11 Apr 1999 14:16:45 -0700 John Milford wrote: > Should read() be turned into a library function now that we > have pread(), and read() is a proper subset of pread()? I am not sure Not that I care too much, since read/pread, etc work fine in NetBSD (which is what I use), but... read() is _NOT_ a subset if pread() in the common sense. read() works from the current file offset, while pread() always takes an explicit offset. There is no way to emulate read() with pread() in userspace. > if this is a POSIX compliance issue, but I've been digging around in > this code recently, and it seems that there is a lot of overlap in the > read system calls, and we might want to consider doing something > similar to the approach taken with wait(). I could understand that > this case is different so we may not want to be doing conversion of > read() or readv() into a hypothetical preadv(), but I can see no issue > with converting read()'s into pread()'s. ...and why not implement preadv()? I did when I implemented pread()/pwrite() in NetBSD. But, see above about it not being possible to emulate read() with pread() in userspace. -- Jason R. Thorpe To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message