标签: file-descriptor

什么是文件描述符,用简单的术语解释?

  1. 与维基百科相比,文件描述符的简化描述是什么?他们为什么需要?比如说,以shell进程为例,它是如何应用的?

  2. 进程表是否包含多个文件描述符.如果是,为什么?

unix operating-system file-descriptor

351
推荐指数
12
解决办法
19万
查看次数

现代Linux机箱可以拥有的理论最大开放TCP连接数是多少

假设硬件具有无限的性能,Linux机箱是否支持> 65536个开放的TCP连接?

据我所知,短暂端口的数量(<65536)限制了从一个本地IP到一个远程IP上的一个端口的连接数.

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

系统中还有另外16位的限制吗?或许文件描述符的数量?

port tcp file-descriptor linux-kernel

226
推荐指数
3
解决办法
17万
查看次数

节点和错误:EMFILE,打开的文件太多

有些日子我一直在搜索错误的工作解决方案

Error: EMFILE, too many open files

似乎很多人都有同样的问题.通常的答案是增加文件描述符的数量.所以,我试过这个:

sysctl -w kern.maxfiles=20480,

默认值是10240.这在我看来有点奇怪,因为我在目录中处理的文件数量低于10240.更奇怪的是,在我增加了文件描述符的数量之后,我仍然收到相同的错误.

第二个问题:

经过多次搜索后,我找到了解决"太多打开文件"问题的方法:

var requestBatches = {};
function batchingReadFile(filename, callback) {
  // First check to see if there is already a batch
  if (requestBatches.hasOwnProperty(filename)) {
    requestBatches[filename].push(callback);
    return;
  }

  // Otherwise start a new one and make a real request
  var batch = requestBatches[filename] = [callback];
  FS.readFile(filename, onRealRead);

  // Flush out the batch on complete
  function onRealRead() {
    delete requestBatches[filename];
    for (var i = 0, l = batch.length; i …
Run Code Online (Sandbox Code Playgroud)

javascript macos file-descriptor node.js

147
推荐指数
8
解决办法
13万
查看次数

文件描述符和文件指针之间有什么区别?

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

此外,在什么情况下你会使用一个而不是另一个?

c file-descriptor file-pointer

106
推荐指数
5
解决办法
8万
查看次数

从C中的文件描述符获取文件名

是否有可能在C中获取文件描述符(Linux)的文件名?

c linux file file-descriptor

97
推荐指数
6
解决办法
10万
查看次数

如何从POSIX文件描述符构造c ++ fstream?

我基本上是在寻找fdopen()的C++版本.我对此做了一些研究,这似乎应该是容易的事情之一,但事实证明是非常复杂的.我是否遗漏了这种信念(即它真的很容易)?如果没有,是否有一个好的图书馆在那里处理这个?

编辑:将我的示例解决方案移到单独的答案.

c++ posix fstream file-descriptor

88
推荐指数
5
解决办法
5万
查看次数

什么>&是什么意思?

我对这个表达有点困惑:

gcc -c -g program.c >& compiler.txt
Run Code Online (Sandbox Code Playgroud)

我知道&>filename会将stdout和stderr重定向到文件filename.但在这种情况下,&符号在大于号之后.它看起来像它的形式M>&N,在哪里MN是文件描述符.

在上面的代码片段,不M=1N='compiler.txt'?这究竟与以下有何不同:

gcc -c -g program.c > compiler.txt     (ampersand removed)
Run Code Online (Sandbox Code Playgroud)

我的理解是每个打开的文件都与大于2的文件描述符相关联.这是正确的吗?

如果是这样,文件名是否可与其文件描述符互换作为重定向目标?

io bash file-descriptor io-redirection

71
推荐指数
2
解决办法
2万
查看次数

文件描述符如何工作?

有人能告诉我为什么这不起作用?我正在玩文件描述符,但感觉有点迷失.

#!/bin/bash
echo "This"
echo "is" >&2
echo "a" >&3
echo "test." >&4
Run Code Online (Sandbox Code Playgroud)

前三行运行正常,但最后两行错误.为什么?

bash shell stdin stdout file-descriptor

67
推荐指数
4
解决办法
6万
查看次数

检查Linux中给定进程的开放FD限制

我最近有一个"泄漏"文件描述符的Linux进程:它打开它们并没有正确关闭其中的一些.

如果我对此进行了监控,我可以提前告知 - 该过程已达到极限.

是否有一个很好的Bash\Python方法来检查Ubuntu Linux系统中给定进程的FD使用率?

编辑:

我现在知道如何检查有多少个打开的文件描述符; 我只需要知道进程允许多少个文件描述符.某些系统(如Amazon EC2)没有该/proc/pid/limits文件.

谢谢,

乌迪

linux scripting operating-system file-descriptor limit

60
推荐指数
2
解决办法
9万
查看次数

在os.system()期间会导致"IOError:[Errno 9]错误文件描述符"的原因是什么?

我正在使用一个科学软件,包括一个os.system()用于运行另一个科学程序的Python脚本.在子进程运行时,Python在某些时候打印以下内容:

close failed in file object destructor:
IOError: [Errno 9] Bad file descriptor
Run Code Online (Sandbox Code Playgroud)

我相信此消息会在os.system()返回的同时打印出来.

我现在的问题是:

哪种情况会导致这种类型的IOError?它究竟意味着什么?对于已被调用的子进程意味着什么os.system()

python posix subprocess file-descriptor ioerror

52
推荐指数
2
解决办法
12万
查看次数