2fork() also “copies” file descriptors. But this done by copying a process table entry and the resulting file descriptors are independent resources of different processes.