Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright (c) 1990 The Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that the above copyright notice and this paragraph are
  7.  * duplicated in all such forms and that any documentation,
  8.  * advertising materials, and other materials related to such
  9.  * distribution and use acknowledge that the software was developed
  10.  * by the University of California, Berkeley.  The name of the
  11.  * University may not be used to endorse or promote products derived
  12.  * from this software without specific prior written permission.
  13.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  14.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  15.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  16.  */
  17.  
  18. /*
  19. FUNCTION
  20. <<fcloseall>>---close all files
  21.  
  22. INDEX
  23.         fcloseall
  24. INDEX
  25.         _fcloseall_r
  26.  
  27. ANSI_SYNOPSIS
  28.         #include <stdio.h>
  29.         int fcloseall(void);
  30.         int _fcloseall_r (struct _reent *<[ptr]>);
  31.  
  32. TRAD_SYNOPSIS
  33.         #include <stdio.h>
  34.         int fcloseall()
  35.  
  36.         int _fcloseall_r (<[ptr]>)
  37.         struct _reent *<[ptr]>;
  38.  
  39. DESCRIPTION
  40. <<fcloseall>> closes all files in the current reentrancy struct's domain.
  41. The function <<_fcloseall_r>> is the same function, except the reentrancy
  42. struct is passed in as the <[ptr]> argument.
  43.  
  44. This function is not recommended as it closes all streams, including
  45. the std streams.
  46.  
  47. RETURNS
  48. <<fclose>> returns <<0>> if all closes are successful.  Otherwise,
  49. EOF is returned.
  50.  
  51. PORTABILITY
  52. <<fcloseall>> is a glibc extension.
  53.  
  54. Required OS subroutines: <<close>>, <<fstat>>, <<isatty>>, <<lseek>>,
  55. <<read>>, <<sbrk>>, <<write>>.
  56. */
  57. /* This file based upon fwalk.c. */
  58.  
  59. #include <_ansi.h>
  60. #include <reent.h>
  61. #include <stdio.h>
  62. #include <stdlib.h>
  63. #include <errno.h>
  64. #include "local.h"
  65.  
  66. int
  67. _DEFUN(_fcloseall_r, (ptr),
  68.        struct _reent *ptr)
  69. {
  70.   return _fwalk_reent (ptr, _fclose_r);
  71. }
  72.  
  73. #ifndef _REENT_ONLY
  74.  
  75. int
  76. _DEFUN_VOID(fcloseall)
  77. {
  78.   return _fcloseall_r (_GLOBAL_REENT);
  79. }
  80.  
  81. #endif
  82.