Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are file descriptors shared when fork()ing?

Tags:

c

linux

fork

unix

Let's say I open a file with open(). Then I fork() my program.

Will father and child now share the same offset for the file descriptor?

I mean if I do a write in my father, the offset will be changed in child too?

Or will the offsets be independent after the fork()?


2 Answers

From fork(2):

  *  The child inherits copies of the parent’s set of open file  descrip-
     tors.   Each  file  descriptor  in the child refers to the same open
     file description (see open(2)) as the corresponding file  descriptor
     in  the parent.  This means that the two descriptors share open file
     status flags, current file offset, and signal-driven I/O  attributes
     (see the description of F_SETOWN and F_SETSIG in fcntl(2)).
like image 170
Ignacio Vazquez-Abrams Avatar answered Sep 10 '25 01:09

Ignacio Vazquez-Abrams


They do share the same offset.

like image 33
Martin v. Löwis Avatar answered Sep 10 '25 01:09

Martin v. Löwis