64得票6回答
如何检查存储在变量中的文件描述符是否仍然有效?

我有一个文件描述符存储在变量中,比如说var。如何在以后的阶段检查该描述符是否有效? fdvar1= open(.....); fdvar2 = fdvar1; // Please ignore the bad design .... // lots of loop...

52得票3回答
Golang坏的文件描述符

在我的 Go 协程中尝试向日志文件追加内容时,出现了“bad file descriptor”的错误。 write ./log.log: bad file descriptor 该文件已存在并且权限为 666。一开始我以为可能是因为它们每个都在同时尝试打开文件。我实现了互斥锁来尝试避免这种...

50得票6回答
获取最高分配的文件描述符

有没有一种可移植的方法(POSIX),可以获取当前进程最高已分配文件描述符编号? 我知道在 AIX 上有一种好方法可以获取这个编号,但我正在寻找一种可移植的方法。 我之所以问这个问题是因为我想关闭所有打开的文件描述符。我的程序是一个以 root 用户身份运行的服务器,它会为非 root 用...

46得票1回答
文件描述符上的ftell?

有没有一种方法可以像ftell()那样(返回文件中的当前位置)在原始文件描述符上执行,而不是在FILE*上执行?我认为应该有,因为您可以使用lseek()在原始文件描述符上进行查找。 我知道我可以使用fdopen()创建与文件描述符对应的FILE*,但我不想这样做。

43得票3回答
套接字:打开的文件太多(24)Apache bench lighttpd

当我开始使用Apache Bench测试时: ab -n 10000 -c 1300 http://example.com/test.php 我遇到了错误: socket: Too many open files (24) 当我将其更改为“-c 1000”时,就可以正常工作。 因为我可...

43得票3回答
为什么在Linux中使用select?

我正在阅读一个串行程序,我观察到他们在使用read()之前使用select()。为什么这是必须的?为什么我们不能直接调用read()并检查它是否失败?另外,为什么我们必须将文件描述符增加1并传递,而我已经将文件描述符集合传递给了select()? 例子: r=select(fd+1, &f...

39得票2回答
在fork()之后,寻求关于“文件描述符”的简单说明。

在《Unix环境高级编程》第二版的第8.3节“fork函数”中,有这样一段描述: “父进程和子进程必须共享相同的文件偏移量。考虑一个进程,它派生了一个子进程,然后等待子进程完成。假设两个进程在正常处理中都会写入标准输出。如果父进程将其标准输出重定向到某个文件(比如通过 shell),那么当子...

38得票4回答
如何在Bash中使用变量表示文件描述符?

我想使用一个Bash变量表示文件描述符,就像这样:id=6 file=a exec $id<>$file 但是用法是错误的:-bash: exec: 6: not found 那么,如何使用变量来表示exec命令中的文件描述符?

38得票2回答
如何将子shell的输出文件描述符重定向到父shell的输入文件描述符?(涉及IT技术)

(在BASH中)我想让一个子shell使用一个非STDOUT非STDERR文件描述符将一些数据传回父shell。我该怎么做?最终我希望将数据保存到父shell的某个变量中。 ( # The following two lines show the behavior of the subs...

37得票5回答
如何在Unix系统中从另一个进程关闭文件描述符

您可以使用命令lsof获取所有运行进程的文件描述符,但我想要做的是在不在该进程内部的情况下关闭其中一些描述符。这在Windows上是可行的,因此您可以轻松解除某些应用程序的阻止。 是否有任何命令或函数可以实现这个功能呢?