Subject: Re: memleak in printf?
To: Simon Burge <simonb@wasabisystems.com>
From: Piotr Meyer <aniou@smutek.pl>
List: netbsd-users
Date: 04/19/2006 08:49:50
On Wed, Apr 19, 2006 at 11:24:50AM +1000, Simon Burge wrote:
> stdio will allocate a buffer when stdout is first used. Try adding
> "fclose(stdout);" before your return(EXIT_SUCCESS). dmalloc showed
> no not-freed pointers after doing that here.
It's working! Thanks!
> > PS. I made test on Linux (Ubuntu 5.10 with kernel 2.6.12) without any
> > warnings/errors.
>
> Maybe Linux does an implicit fclose() on exit?
Exactly:
[...]
Normal termination causes the following actions:
[...]
2. All open streams are closed, writing out any buffered output data.
See Closing Streams. In addition, temporary files opened with the
tmpfile function are removed; see Temporary Files.
http://www.gnu.org/software/libc/manual/html_node/Normal-Termination.html#Normal-Termination
--
Piotr 'aniou' Meyer