confusion on fopen()/falloc()

Yan Yu yanyu at CS.UCLA.EDU
Sat Feb 26 09:10:47 GMT 2005


Hello, all,
I have a user program as below:
FILE *fd;
while (1)
{
	fd= fopen( "tmp", "r" );
	if ( fd == NULL )
		break;
}

from my understanding, since i open the same file to read, my process
should create a new file descriptor each time when fopen is called.
Therefore, inside the kernel, fdalloc() should be called, NOT falloc()
(since falloc() allocates a new FILE * struct in addition to a new file
descriptor),
BUT based on what i observed (i instrumented falloc() function), it seems
that falloc() is called each time when fopen() is called.
I am wondering where i missed?

Any hints is appreciated!
Best,
yan



More information about the freebsd-hackers mailing list