On Wed Feb 23 11, Garrett Cooper wrote:
> On Wed, Feb 23, 2011 at 3:53 PM, Alexander Best <arun...@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 <adu...@juniper.net> 
> >> >> wrote:
> >> >>> I thought seeking past EOF was valid; writing something creates a file
> >> > with a hole in it. I always assumed that was standard semantics.
> >> >>
> >> >>    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 
> >> > file
> >> > (it does an implicit ftruncate(2)).  SEEK_HOLE and SEEK_DATA are 
> >> > different,
> >> > they are just used to discover sparse regions within a file.
> >
> > on the other hand POSIX says:
> >
> > "The behavior of lseek() on devices which are incapable of seeking is 
> > implementation-defined.
> > The value of the file offset associated with such a device is undefined."
> >
> > ...if we define /dev/{zero,null} as incapable of seeking the current
> > implementation should be ok.
> >
> >> >
> >> > From 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 
> >> > zeros
> >> >     (until data is actually written into the gap).
> >>
> >>       You're correct. Linux (Fedora 13) isn't POSIX compliant (this 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 
> >> point, subsequent reads of data in the gap shall return bytes with the 
> >> value 0 until data is actually written into the gap.
> 
>     Yes, but look at how it's defined by POSIX before you do that
> (yes, there's a section for null/zero IIRC).

i cannot find any references to null/zero in connection with seeking in the
POSIX specs.

> Thanks,
> -Garrett

-- 
a13x
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to