diff options
Diffstat (limited to 'newlib/libc')
-rw-r--r-- | newlib/libc/stdio/findfp.c | 4 | ||||
-rw-r--r-- | newlib/libc/stdio/local.h | 10 |
2 files changed, 14 insertions, 0 deletions
diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c index 7ab3bdba5..e40500a07 100644 --- a/newlib/libc/stdio/findfp.c +++ b/newlib/libc/stdio/findfp.c @@ -62,7 +62,11 @@ _DEFUN(std, (ptr, flags, file, data), ptr->_flags |= __SL64; #endif /* __LARGE64_FILES */ ptr->_seek = __sseek; +#ifdef _STDIO_CLOSE_PER_REENT_STD_STREAMS ptr->_close = __sclose; +#else /* _STDIO_CLOSE_STD_STREAMS */ + ptr->_close = NULL; +#endif /* _STDIO_CLOSE_STD_STREAMS */ #if !defined(__SINGLE_THREAD__) && !defined(_REENT_SMALL) __lock_init_recursive (ptr->_lock); /* diff --git a/newlib/libc/stdio/local.h b/newlib/libc/stdio/local.h index cbfeac77d..ec5efab49 100644 --- a/newlib/libc/stdio/local.h +++ b/newlib/libc/stdio/local.h @@ -32,6 +32,16 @@ # include <io.h> #endif +/* The following define determines if the per-reent stdin, stdout and stderr + streams are closed during _reclaim_reent(). The stdin, stdout and stderr + streams are initialized to use file descriptors 0, 1 and 2 respectively. In + case _STDIO_CLOSE_PER_REENT_STD_STREAMS is defined these file descriptors + will be closed via close() provided the owner of the reent structure + triggerd the on demand reent initilization, see CHECK_INIT(). */ +#ifndef __rtems__ +#define _STDIO_CLOSE_PER_REENT_STD_STREAMS +#endif + /* The following macros are supposed to replace calls to _flockfile/_funlockfile and __sfp_lock_acquire/__sfp_lock_release. In case of multi-threaded environments using pthreads, it's not sufficient to lock the stdio functions |