首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Linux要重用由管道()分配的文件描述符

为什么Linux要重用由管道()分配的文件描述符
EN

Stack Overflow用户
提问于 2010-03-01 07:24:32
回答 1查看 1.1K关注 0票数 2

我发现在Linux中同时使用套接字和管道有一个问题。具体地说,我们调用pipe(),它分配下两个可用的文件描述符...假设是10和11。然后我们在套接字上调用accept(),期望它分配12,而不是分配11。

我们已经进行了一些测试,似乎从pipe()返回的第二个FD总是可供创建文件描述符的其他syscall重用。

有人能解释这个吗?

EN

回答 1

Stack Overflow用户

发布于 2010-03-01 08:16:23

这意味着有人在调用管道之后、第二次系统调用之前的某个时间关闭了有问题的文件描述符。例如,如果您派生了一些其他进程来在管道的一端执行某些操作,则可能会搞砸关闭其他进程使用的管道末端的代码,并关闭管道的错误末端。或者其他任何可能在某个文件描述符上调用close的东西都可能关闭了错误的东西。

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

https://stackoverflow.com/questions/2353113

复制
相关文章

相似问题

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