问题标签 [file-descriptor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
10483 浏览

c++ - 如何准确地阅读一行?

我有一个 Linux 文件描述符(来自套接字),我想读一行。如何在 C++ 中做到这一点?

0 投票
3 回答
9008 浏览

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

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

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

笔记

从那以后,我收到了 Windows 和 Linux 的答案,并且过于频繁地调整了这个问题,这让人们很难回答。我将调整我的投票并接受涵盖 WindowsLinux 的最干净的答案。向所有人道歉,我对 SO 范式仍然很陌生。感谢您的精彩回答!

0 投票
4 回答
705 浏览

c - 关于在c中更改文件描述符编号的问题

我的问题是如何更改下面的程序,以便它在命令行上使用文件描述符编号而不是文件名?任何帮助将不胜感激。谢谢你。

0 投票
8 回答
18331 浏览

c - 在没有 read() 的情况下清空或“刷新”文件描述符?

(注意:这不是如何刷新 a 的问题write()。可以这么说,这是它的另一端。)

是否可以清空包含要读取的数据的文件描述符不必这样read()做?您可能对数据不感兴趣,因此阅读所有数据会浪费您可能有更好用途的空间和周期。

如果在 POSIX 中不可能,是否有任何操作系统有任何不可移植的方法来做到这一点?

更新:请注意,我说的是文件描述符而不是流。

0 投票
6 回答
110053 浏览

java - IOException:打开的文件太多

我正在尝试在 Linux 上的 Jetty 7.0.1 中运行的 Java webapp 中调试文件描述符泄漏。

该应用程序已经愉快地运行了一个月左右,但由于打开的文件过多,请求开始失败,不得不重新启动 Jetty。

起初我认为问题出在启动外部程序的代码上,但它使用的是commons-exec,我看不出有什么问题:

列出服务器上打开的文件我可以看到大量的 FIFO:

Jetty 启动时只有 10 个 FIFO,几天后就有数百个。

我知道在这个阶段有点含糊,但是您对下一步看哪里有什么建议,或者如何获得有关这些文件描述符的更详细信息?

0 投票
2 回答
2868 浏览

python - 使用带有文件描述符的 Python Twisted 的示例

我希望使用 twisted 来控制主进程和一组从进程之间跨 Linux 管道(os.pipe())和 fifos(os.mkfifo())的通信。虽然我很肯定,可以将twisted 用于这些类型的文件描述符(毕竟,twisted 非常适合*nix 抽象为文件描述符的tcp 套接字),但我找不到这种用法的任何示例。有人有任何链接、示例代码或建议吗?

0 投票
1 回答
724 浏览

windows - Perl 文件描述符如何在 Windows 上工作?

Windows 是否支持文件描述符?为什么使用 fds 在 Perl 中“似乎工作”?

诸如“fileno”、“dup”和“dup2”之类的东西正在工作,但随后在其他一些环境中随机停止工作。很难提供详细信息,主要是我正在寻找经验丰富的 Windows 程序员的答案以及文件描述符如何在 Windows 上工作/不工作。

我猜想是 PerlIO 层在玩游戏并让它看起来好像文件描述符工作,但这只是一个猜测。

正在发生的事情的例子:

第二行 die()s 但仅在某些情况下(我尚未确定)。

0 投票
1 回答
1411 浏览

python - 将stderr重定向到python执行进程上的stdout?

在 bash 脚本中,我可以编写:

并且 stderr 的输出someprog将被重定向到 stdout。

有没有办法使用 python 的os.exec*函数做类似的事情?

这不必是可移植的,只需在 Linux 上工作即可。

0 投票
3 回答
218205 浏览

tcp - 现代 Linux 机器可以拥有的打开 TCP 连接的理论最大数量是多少

假设硬件性能无限,Linux 机器能否支持 >65536 个打开的 TCP 连接?

我了解临时端口的数量(<65536)限制了从一个本地 IP 到一个远程 IP 上的一个端口的连接数。

元组(本地 ip,本地端口,远程 ip,远程端口)是唯一定义 TCP 连接的东西;这是否意味着如果这些参数中的一个以上可用,则可以支持超过 65K 的连接。例如,从多个本地 IP 连接到多个远程主机上的单个端口号。

系统中是否还有 16 位限制?也许文件描述符的数量?

0 投票
9 回答
105020 浏览

c - 文件描述符和文件指针有什么区别?

我想知道文件描述符和文件指针之间的区别。

另外,在什么情况下您会使用其中一种而不是另一种?