Unix最大文件描述符

时间:2012-04-25 05:22:54

标签: c system-calls file-descriptor

我最近编写了一个程序来计算每个进程打开的文件描述符的最大数量。

基本上是

int fd = creat("somefile.dat");
int count = 1;

while(1)
{

 int s = dup(fd);

  if (s == -1)
    break;

  count++;
}

printf("Max fd: %d", s);

现在我如何应用同一个程序,但要找到最大fd金额系统范围而不是每个流程?

1 个答案:

答案 0 :(得分:2)

我有多种想法可以解决这个问题:

1 - 将MINIX中允许的最大进程数乘以每个进程的最大FD

  • 我唯一担心的是,在每个流程的流程数量不足或超过流程的情况下,存在某种硬性上限

2 - 创建一个多次运行上述程序的程序

  • 规定是你必须以某种方式将计数返回到原始程序并总结它
    • 另外,我不知道如何从程序中调用其他进程并从中检索返回值。
    • 此外,您如何同时运行所有流程?你怎么知道MAX#进程,以及你怎么知道何时停止运行进程?

P.S。你必须在我的ecs150课程中不是吗?