【发布时间】:2015-05-07 17:48:28
【问题描述】:
我使用命令:ulimit -n 并取数字 1024,这是我系统中每个进程打开文件的最大数量。但是通过以下程序,我选择了 510 ...?怎么了
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
int main( void )
{
int pipe_ext = 0, pfd[ 2 ], counter = 0;
while ( 1 )
{
pipe_ext = pipe( pfd );
//errno = 0;
if ( pipe_ext == 0 )
{
write( pfd[ 1 ], "R", 1 );
counter = counter + 1;
printf("Counter = %d\n", counter );
}
else
{
perror( "pipe()" );
printf("errno = %d\n", errno );
exit( 1 );
}
}
return( 0 );
}
【问题讨论】:
-
它并不是一个进程可以拥有的文件的最大数量,它是文件描述符的最大数量,可以是从管道到打开的网络套接字的任何东西。