Date: Tue, 22 Feb 2011 12:51:33 -0500 From: John Baldwin <jhb@freebsd.org> To: freebsd-hackers@freebsd.org Cc: Alexander Best <arundel@freebsd.org>, Garrett Cooper <gcooper@freebsd.org> Subject: Re: seeking into /dev/{null,zero} Message-ID: <201102221251.33717.jhb@freebsd.org> In-Reply-To: <AANLkTimwOVub6XxZqgCmHPnLbekJrEbYQBzxUr%2BUrcR5@mail.gmail.com> References: <20110222141112.GA98964@freebsd.org> <AC6674AB7BC78549BB231821ABF7A9AE970EA06474@EMBX01-WF.jnpr.net> <AANLkTimwOVub6XxZqgCmHPnLbekJrEbYQBzxUr%2BUrcR5@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, February 22, 2011 11:46:05 am Garrett Cooper wrote: > (Please bottom post) >=20 > On Tue, Feb 22, 2011 at 8:31 AM, Andrew Duane <aduane@juniper.net> wrote: > > I thought seeking past EOF was valid; writing something creates a file= =20 with a hole in it. I always assumed that was standard semantics. >=20 > That's with SET_HOLE/SET_DATA though, correct? If so, outside of > that functionality I would assume relatively standard POSIX semantics. Err, no, you can always seek past EOF and then call write(2) to extend a fi= le=20 (it does an implicit ftruncate(2)). SEEK_HOLE and SEEK_DATA are different,= =20 they are just used to discover sparse regions within a file. =46rom the manpage: The lseek() system call allows the file offset to be set beyond the end of the existing end-of-file of the file. If data is later written at this point, subsequent reads of the data in the gap return bytes of ze= ros (until data is actually written into the gap). =2D-=20 John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201102221251.33717.jhb>