Duplicate file descriptor with its own file offset

前端 未结 3 1562
醉话见心
醉话见心 2021-02-05 13:20

How can one create a new file descriptor from an existing file descriptor such that the new descriptor does not share the same internal file structure/entry in the file table? S

3条回答
  •  别跟我提以往
    2021-02-05 14:03

    So, I recommend reading up on this a little more. The dup() and related functions serve to create a duplicate value in the file descriptor table pointing to the same entry in the open file table. This is intended to have the same offset. If you call open(), you will create a new entry the open file table.

    It doesn't make any sense to create a duplicate of a file descriptor and that new file descriptor have a different offset in the open file table (this seems to contradict what the word "duplicate" means).

    I'm not sure what your question is actually. I mean, it isn't the same thing as a duplicate. You could read:

    /proc/self/fd/[descriptor]

    and get the string that was used to open that file descriptor; bear in mind this may provide some pitfalls, some of which you actually noted in your observation of calling open() again.

    Maybe you can explain a little more and I can try to update to help.

提交回复
热议问题