Re: file offset pointer accross fork() ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 30 Sep 2005 21:17:26 +0200
Sebastian Skar <sebastianskar@xxxxxxxxx> wrote:
> we can see that the pointers are shallow copied (not 'copy constructed'...),
> so basically even across fork the same file position is relevant for
> both father and child.

btw, this isn't linux specific - it's covered by POSIX and
documented in glibc:

http://www.jaluna.com/doc/c5/html/ManPages/hman2posix/fork.2posix.html

"The child process has its own copy of the parent's descriptors. These
descriptors reference the same underlying objects, so that, for
instance, file pointers in file objects are shared between the child
and the parent, so that an lseek(2POSIX) on a descriptor in the child
process can affect a subsequent read(2POSIX) or write(2POSIX) by the
parent."

http://www.gnu.org/software/libc/manual/html_node/File-Position-Primitive.html

"You can have multiple descriptors for the same file if you open the
file more than once, or if you duplicate a descriptor with dup.
Descriptors that come from separate calls to open have independent file
positions; using lseek on one descriptor has no effect on the other.
[...] 
By contrast, descriptors made by duplication share a common file
position with the original descriptor that was duplicated. Anything
which alters the file position of one of the duplicates, including
reading or writing data, affects all of them alike."

Cheers,
Florin

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux