4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-01-15 19:09:58 +08:00
Jeff Johnston 47dcaf565d 2004-04-08 Artem B. Bityuckiy <abitytsky@softminecorp.com>
* libc/stdio/fclose.c (_fclose_r): New function.
        * libc/stdio/freopen.c (_freopen_r): Call _fclose_r.
        * libc/stdio/fcloseall.c (_fcloseall_r): Call _fwalk_reent.
        * libc/stdio64/freopen64.c (_freopen64_r): Use _fclose_r.
        * libc/include/stdio.h (_fclose_r): New prototype.
        * libc/stdio/fopen.c: Fix typo in comment.

2004-04-08  Jeff Johnston  <jjohnstn@redhat.com>

        * libc/stdio/fwalk.c (_fwalk_reent): New version of _fwalk
        to handle _r reentrant functions.
2004-04-08 22:26:50 +00:00

81 lines
1.9 KiB
C

/*
FUNCTION
<<fcloseall>>---close all files
INDEX
fcloseall
INDEX
_fcloseall_r
ANSI_SYNOPSIS
#include <stdio.h>
int fcloseall(void);
int _fcloseall_r (struct _reent *<[ptr]>);
TRAD_SYNOPSIS
#include <stdio.h>
int fcloseall()
int _fcloseall_r (<[ptr]>)
struct _reent *<[ptr]>;
DESCRIPTION
<<fcloseall>> closes all files in the current reentrancy struct's domain.
The function <<_fcloseall_r>> is the same function, except the reentrancy
struct is passed in as the <[ptr]> argument.
This function is not recommended as it closes all streams, including
the std streams.
RETURNS
<<fclose>> returns <<0>> if all closes are successful. Otherwise,
EOF is returned.
PORTABILITY
<<fcloseall>> is a glibc extension.
Required OS subroutines: <<close>>, <<fstat>>, <<isatty>>, <<lseek>>,
<<read>>, <<sbrk>>, <<write>>.
*/
/* This file based upon fwalk.c. */
/*
* Copyright (c) 1990 The Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include "local.h"
int
_fcloseall_r (ptr)
struct _reent *ptr;
{
return _fwalk_reent (ptr, _fclose_r);
}
#ifndef _REENT_ONLY
int
fcloseall (void)
{
return _fcloseall_r (_GLOBAL_REENT);
}
#endif