问题标签 [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.
linux - 在某些 linux 程序中关闭奇怪的描述符
在跟踪一些 linux 守护进程(例如 sendmail)时,我注意到其中一些会在开始时对多个描述符(通常范围从 3 到 255)调用 close()。这是故意做的,还是做其他事情的某种副作用?
java - Hadoop 0.21.0 中打开文件描述符的预期消耗
给定Hadoop 0.21.0,框架对相对于每个单独的 map 和 reduce 操作的打开文件描述符的数量做出了哪些假设?具体来说,哪些子操作会导致 Hadoop 在作业执行期间打开新的文件描述符或溢出到磁盘?
(这是故意忽略使用MultipleOutputs
,因为它非常明显地与系统提供的保证相吻合。)
我的理由很简单:我想确保我为 Hadoop 编写的每个作业都保证每个映射器或缩减器所需的文件描述符数量有限。Hadoop 很乐意将这一点从程序员那里抽象出来,这通常是一件好事,如果不是因为在服务器管理期间另一只鞋掉了下来。
我最初是从集群管理方面问这个关于服务器故障的问题。由于我还负责编程,所以这个问题在这里同样重要。
python - python中打开的文件太多
我编写了一种文件密集型测试套件。一段时间后(2 小时),我得到一个IOError: [Errno 24] Too many open files: '/tmp/tmpxsqYPm'
. 我仔细检查了所有文件句柄是否再次关闭它们。但是错误仍然存在。
我试图找出允许使用的文件描述符resource.RLIMIT_NOFILE
的数量以及当前打开的文件描述符的数量:
因此,如果我运行以下测试:
我得到这个输出:
这很奇怪,我预计打开的文件描述符数量会增加。我的脚本正确吗?
我正在使用 python 的记录器和子进程。这可能是我的 fd 泄漏的原因吗?
谢谢,丹尼尔
c# - 如何打开/使用文件描述符
我有一个特殊的问题,我有一些我无法修改的程序,但它提供了一些我想在办公室内使用的功能。所以我正在为 Office 编写一个插件,它获取我的文档,在后台执行程序,将文档放在标准输入上。该程序写入标准输出,然后我将其带回我的程序以进行处理。
这一切都很好,只是程序要求输入我不想放在标准输入上的密码。该工具有一种从任何其他输入流中读取密码的方法,但它需要它应该从中读取的文件描述符的编号。
所以这是我的问题:我如何(在 .net 环境中)打开文件描述符上的流,其中包含我可以作为参数提供给该程序的数字?理想情况下,我想写如下内容:
等..(但随后神奇地纠正了它会起作用;))
我希望有一个人可以帮助我。
谢谢
c - 在 Windows/mingw 上,什么是 `fcntl(fd, F_GETFL) | O_ACCMODE`?
我正在用 Mingw 在 Windows 上编译一个程序。如何获取打开文件描述符的访问模式?
c++ - 使用 inotify 监控文件
我正在使用 inotify 来监视本地文件,例如“/root/temp”使用
当这个文件被删除时,程序将被read(fd, buf, bufSize)
功能阻塞。即使我创建了一个新的“/root/temp”文件,程序仍然被读取功能阻塞。我想知道 inotify 是否可以检测到被监视的文件被创建并且读取函数可以从 fd 中获取一些东西,这样读取就不会永远被阻塞。这是我的代码:
我监视了所有事件。
windows - Windows 中的 socket 和 HANDLE 有什么区别?
我正在尝试制作一个在 Windows 中运行的 Linux 服务器。
套接字和文件描述符在 Linux 中的处理方式相同。一些系统 api 可用于套接字和文件描述符。
但是,我通过 Winsock 处理套接字,并通过 WIN API 处理 HANDLE(文件描述符)。
所以我需要知道一个整数是一个套接字还是一个句柄。
现在问题来了:
socket() 和 open() 的返回值在 Windows 中是否相同?
如果它们总是不同,我可以编写自己的 socket() 和 open() 来包装系统的。并记录系统api的返回值,无论整数是socket还是HANDLE。
如果它们相同,我不知道如何处理它。
android - 调用 setDataSource(FileDescriptor) 方法时出现异常(失败。:status=0x80000000)
我正在开发一个视频流应用程序,并且在使用 FileDescriptor 调用 set setDataSource 时遇到了问题。我希望我的应用程序在下载视频时播放视频,所以一旦我获得最少的字节数,我就会将这些字节移动到另一个文件中,以便在下载到原始文件时可以在另一个文件中播放。
因此,我检查是否可以像这样启动每个数据包的媒体播放器:
这是 startMediaPlayer 方法代码:
我使用以下代码移动文件:
最后我在这里创建了 MediaPlayer 对象:
这是我得到的例外:
我整个早上都被困在这里,我真的找不到有关该错误的信息。有些人告诉我使用文件路径,但我得到了我在评论中谈到的另一个异常(就在 FileInputStream 创建上)。
我真的迷路了,任何帮助将不胜感激
asynchronous - 文件描述符:是否可以非阻塞“写入”任意长度的数据?
是否可以使用文件描述符作为句柄(可能使用自定义内核驱动程序)读取和写入任意大小的数据?
或者是否有操作系统强制限制用于通过文件描述符传输数据的缓冲区大小?
我知道
- 由于磁盘访问时间慢而导致文件阻塞
- 套接字(流和 dgram)具有最大数据包大小
- 管道和先进先出似乎也有某种缓冲限制
我想创建一个永远不会阻止写入的 fd。
例子
用法将是这样的:
后端实现将是这样的(请原谅过度简化):
javascript - Opera 将长轮询套接字打开
我们遇到了长轮询和歌剧的问题。我自己是一名 c 程序员,并且已经为我们的需要开发了一个定制的 http-daemon。在这种情况下,我们需要一个能够处理大量连接的长轮询服务器。
问题是,即使在单击站点上的某些链接并且当然会打开新的链接之后,Opera 也会以某种方式使这些长民意调查保持打开状态。我们使用基本的长轮询技术,它试图在 iframe 中包含 javascript。这适用于其他浏览器,但即使我强制以前的民意调查在服务器端关闭,opera 也会重新打开它们。这不是很好,因为在高流量站点上,只有少数 opera 用户可以通过浏览站点导致守护程序快速耗尽免费文件描述符(因为站点上的每次点击都会打开一个新的长轮询,而旧的不会关闭)。页面刷新不会导致相同的结果,它会做正确的事情:关闭长轮询并打开一个新轮询。关闭opera后,所有文件描述符都关闭了,一切都很好了。
那么,我应该在 http-daemon 中为歌剧添加一些特定的标头还是我们的 javascript 有问题?
编辑:使用版本测试:Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.6.30 Version/10.63