gpt4 book ai didi

linux - fork 而不是共享时如何复制文件描述?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:05 25 4
gpt4 key购买 nike

当进程 fork 时,子进程将与其父进程共享 fork 前打开的文件描述。

有没有办法让 child 拥有自己的文件描述副本(包括偏移量和文件状态标志)?

我需要它,因为我不希望 parent 和 child 共享相同的文件偏移量;如果一个进程已完成读取,我不希望更改第二个进程的文件偏移量。

最佳答案

同时存在“打开文件描述符”和“打开文件描述”。使用 open() 打开文件时,同时创建文件描述符和文件描述。当文件描述符重复时(dup()dup2()),这两个描述符引用相同的打开文件描述。

关于 fork() ,父文件描述符在子文件中被复制(复制);父子中的描述符都指向相同的打开文件描述。

The child process shall have its own copy of the parent's file descriptors. Each of the child's file descriptors shall refer to the same open file description with the corresponding file descriptor of the parent.

否则无法让它工作——您必须关闭并重新打开文件才能获得单独的打开文件描述。

关于linux - fork 而不是共享时如何复制文件描述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15743400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com