Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Feb 2011 16:15:20 -0800
From:      Garrett Cooper <yanegomi@gmail.com>
To:        Alexander Best <arundel@freebsd.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: seeking into /dev/{null,zero}
Message-ID:  <AANLkTimX%2B64jws3M-=eE7zPbHvTcQBORryHg=wuBd7=N@mail.gmail.com>
In-Reply-To: <20110223233612.GA46124@freebsd.org>
References:  <20110222141112.GA98964@freebsd.org> <AC6674AB7BC78549BB231821ABF7A9AE970EA06474@EMBX01-WF.jnpr.net> <AANLkTimwOVub6XxZqgCmHPnLbekJrEbYQBzxUr%2BUrcR5@mail.gmail.com> <201102221251.33717.jhb@freebsd.org> <3A287E45-A369-4C7A-BA8E-A205679AC0BC@gmail.com> <20110223233612.GA46124@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 23, 2011 at 3:36 PM, Alexander Best <arundel@freebsd.org> wrote=
:
> On Wed Feb 23 11, Garrett Cooper wrote:
>> On Feb 22, 2011, at 9:51 AM, John Baldwin wrote:
>>
>> > On Tuesday, February 22, 2011 11:46:05 am Garrett Cooper wrote:
>> >> (Please bottom post)
>> >>
>> >> On Tue, Feb 22, 2011 at 8:31 AM, Andrew Duane <aduane@juniper.net> wr=
ote:
>> >>> I thought seeking past EOF was valid; writing something creates a fi=
le
>> > with a hole in it. I always assumed that was standard semantics.
>> >>
>> >> =A0 =A0That'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 file
>> > (it does an implicit ftruncate(2)). =A0SEEK_HOLE and SEEK_DATA are dif=
ferent,
>> > they are just used to discover sparse regions within a file.
>> >
>> > From the manpage:
>> >
>> > =A0 =A0 The lseek() system call allows the file offset to be set beyon=
d the end
>> > =A0 =A0 of the existing end-of-file of the file. =A0If data is later w=
ritten at
>> > =A0 =A0 this point, subsequent reads of the data in the gap return byt=
es of zeros
>> > =A0 =A0 (until data is actually written into the gap).
>>
>> =A0 =A0 =A0 You're correct. Linux (Fedora 13) isn't POSIX compliant (thi=
s is from the official POSIX text):
>>
>> The lseek ( ) function shall allow the file offset to be set beyond the =
end of the existing data in the file. If data is later written at this poin=
t, subsequent reads of data in the gap shall return bytes with the value 0 =
until data is actually written into the gap.
>
> so except for reading from /dev/zero freebsd also isn't posix compliant, =
right?

Huh...? Please better explain what you mean here.
Thanks,
-Garrett



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimX%2B64jws3M-=eE7zPbHvTcQBORryHg=wuBd7=N>