Date: Sat, 26 Feb 2005 01:10:46 -0800 (PST) From: Yan Yu <yanyu@CS.UCLA.EDU> To: freebsd-hackers@freebsd.org Subject: confusion on fopen()/falloc() Message-ID: <Pine.GSO.4.58.0502260103420.13229@panther.cs.ucla.edu> In-Reply-To: <Pine.GSO.4.58.0502260043200.12442@panther.cs.ucla.edu> References: <20050226072645.76950.qmail@web26802.mail.ukl.yahoo.com> <Pine.GSO.4.58.0502260043200.12442@panther.cs.ucla.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.58.0502260103420.13229>