Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Apr 1999 11:34:35 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Robert Watson <robert@cyrus.watson.org>
Cc:        Terry Lambert <terry@whistle.com>, current@FreeBSD.ORG
Subject:   Re: aio_read
Message-ID:  <199904051834.LAA11656@apollo.backplane.com>
References:   <Pine.BSF.3.96.990405141834.22049D-100000@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help
:
:This was not my impression; I thought that children had their own
:descriptor entries on a per-process basis, but that they all pointed to
:the same open file entry when inherited.  I was contemplating adding a

    They do indeed point to the same file entry.  Also, when you dup() a
    descriptor the two descriptors are pointing to the same file entry.

    This means that they share the same seek offset... seeking in one 
    descriptor changes the seek position in the other descriptor and even
    the other descriptor in the other process.

    UNIX has been broken this way from day 1.  It was a major design mistake.
    The only way to get your own descriptor seek offset is to open() the
    file again.

    The aio stuff gets around this by introducing a seek offset in the
    syscall, but historical use of the file descriptor seek offset broke
    aio's syscall-based offset.  Alan has committed fixes to much of the 
    historical code (in vn_read() and vn_write()) that should mean that 
    aio offsets now work, but I haven't tested it myself.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>

:  Robert N Watson 
:




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199904051834.LAA11656>