Date: Tue, 22 Feb 2011 08:22:50 -0800 From: Garrett Cooper <gcooper@FreeBSD.org> To: Alexander Best <arundel@freebsd.org> Cc: freebsd-hackers@freebsd.org Subject: Re: seeking into /dev/{null,zero} Message-ID: <AANLkTi=TCXhy9pvzKPsqtmX89JyB4CDnEuP2-jeF60_N@mail.gmail.com> In-Reply-To: <20110222141112.GA98964@freebsd.org> References: <20110222141112.GA98964@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Feb 22, 2011 at 6:11 AM, Alexander Best <arundel@freebsd.org> wrote: > hi there, > > there's a PR [1] regarding seeking into /dev/null and /dev/zero. i just wanted > to ask what the overall opinion is on this matter. technically it's quite easy > to seek into those files upon fwrite(3) and fread(3). the point is, if the file > position should be repositioned according the the amount of bytes read or > written. > > the zero(4) and null(4) manual pages claim that both devices act as "ordinary" > files. right now only reading from /dev/zero will seek into the file. writing > to /dev/zero and reading/writing to /dev/null will *not* adjust the file > position. lseek on CURRENT (and its assorted functions) is funky. Try this as an example: 1. Create a zero character file. 2. lseek with SEEK_SET to byte 1. 2. will always return 1. My Fedora Linux 13 VM on the other hand actually reports the error when you try and seek outside the bounds of the file descriptor (this makes more sense IMO because it accurately reflects reality). This is an extension to the POSIX spec though as the spec doesn't say whether or not seeking past the bounds of the descriptor is legal or illegal. So what I'm trying to say is that the seek family functions in general don't report helpful data except with success. Found this when trying to write testcases for lseek(2) the night before last. I'll get back to you about the POSIXness of those /dev's in the most recent spec once I get access back to the OpenGroup download section -_-... Thanks, -Garrett
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=TCXhy9pvzKPsqtmX89JyB4CDnEuP2-jeF60_N>