首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有自己的文件偏移量的重复文件描述符

具有自己的文件偏移量的重复文件描述符
EN

Stack Overflow用户
提问于 2009-10-21 03:28:37
回答 2查看 9.4K关注 0票数 15

如何从现有的文件描述符创建新的文件描述符,使新描述符不共享文件表中相同的内部文件结构/条目?具体而言,文件偏移量(最好是权限、共享和模式)等属性不应在新的和旧的文件描述符之间共享。

在Windows和Linux下,dup()都会复制文件描述符,但是这两个描述符仍然指向进程文件表中相同的文件结构。对任一描述符的任何查找都将调整其他描述符的位置。

Note

从那以后,我收到了Windows和Linux的答案,并且经常调整这个问题,这使得人们很难回答。我将调整我的投票,接受最干净的答案,包括Windows和Linux。向大家道歉,我对SO范式还不熟悉。谢谢你给我的答案!

EN

回答 2

Stack Overflow用户

发布于 2009-10-21 03:59:42

所以,我建议多读一点这方面的内容。dup()和相关函数用于在文件描述符表中创建一个重复值,指向打开的文件表中的相同条目。这是打算使用的具有相同偏移量。如果您调用open(),您将创建一个新条目--打开的文件表。

创建文件描述符的副本没有任何意义,而且新的文件描述符在打开的文件表中有不同的偏移量(这似乎与“重复”一词的意思相矛盾)。

我不知道你的问题到底是什么。我是说,这和复制不一样。你可以读到:

/proc/self/fd/[descriptor]

并获取用于打开该文件描述符的字符串;请记住,这可能会带来一些缺陷,其中一些您在再次调用open()时实际上已经注意到了。

也许你可以解释的更多,我可以尝试更新,以帮助。

票数 3
EN

Stack Overflow用户

发布于 2009-10-29 10:24:31

为什么不直接在windows上打开打开()或CreateFile()的文件呢?这给了您不同的访问权限和单独的偏移量的自由。

当然,这有一个缺点,即您不能单独打开文件,但它非常简单地解决了您的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1598586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档