/* Implement fopen_unlocked and related functions.
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library.
You should have received a copy of the GNU Library General Public
License along with libiberty; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
+not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+Boston, MA 02110-1301, USA. */
/*
@end deftypefn
-@deftypefn Extension FILE * fopen_unlocked (const char *@var{path}, const char * @var{mode})
+@deftypefn Extension void unlock_std_streams (void)
+
+If the OS supports it, ensure that the standard I/O streams,
+@code{stdin}, @code{stdout} and @code{stderr} are setup to avoid any
+multi-threaded locking. Otherwise do nothing.
+
+@end deftypefn
+
+@deftypefn Extension {FILE *} fopen_unlocked (const char *@var{path}, @
+ const char * @var{mode})
Opens and returns a @code{FILE} pointer via @code{fopen}. If the
operating system supports it, ensure that the stream is setup to avoid
@end deftypefn
-@deftypefn Extension FILE * fdopen_unlocked (int @var{fildes}, const char * @var{mode})
+@deftypefn Extension {FILE *} fdopen_unlocked (int @var{fildes}, @
+ const char * @var{mode})
Opens and returns a @code{FILE} pointer via @code{fdopen}. If the
operating system supports it, ensure that the stream is setup to avoid
@end deftypefn
-@deftypefn Extension FILE * freopen_unlocked (const char * @var{path}, const char * @var{mode}, FILE * @var{stream})
+@deftypefn Extension {FILE *} freopen_unlocked (const char * @var{path}, @
+ const char * @var{mode}, FILE * @var{stream})
Opens and returns a @code{FILE} pointer via @code{freopen}. If the
operating system supports it, ensure that the stream is setup to avoid
}
void
-unlock_stream(FILE *fp)
+unlock_stream (FILE *fp)
{
unlock_1 (fp);
}
+void
+unlock_std_streams (void)
+{
+ unlock_1 (stdin);
+ unlock_1 (stdout);
+ unlock_1 (stderr);
+}
+
FILE *
fopen_unlocked (const char *path, const char *mode)
{