root/maint/gnulib/lib/fwriting.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /* Retrieve information about a FILE stream.
   2    Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
   3 
   4    This file is free software: you can redistribute it and/or modify
   5    it under the terms of the GNU Lesser General Public License as
   6    published by the Free Software Foundation; either version 3 of the
   7    License, or (at your option) any later version.
   8 
   9    This file is distributed in the hope that it will be useful,
  10    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12    GNU Lesser General Public License for more details.
  13 
  14    You should have received a copy of the GNU Lesser General Public License
  15    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
  16 
  17 #include <stdbool.h>
  18 #include <stdio.h>
  19 
  20 /* Return true if the stream STREAM is opened write-only or
  21    append-only, or if the last operation on the stream was a write
  22    operation.  Return false if the stream is opened read-only, or if
  23    it supports reading and there is no current write operation (such
  24    as fputc).
  25 
  26    freading and fwriting will never both be true.  If STREAM supports
  27    both reads and writes, then:
  28      - both freading and fwriting might be false when the stream is first
  29        opened, after read encounters EOF, or after fflush,
  30      - freading might be false or true and fwriting might be false
  31        after repositioning (such as fseek, fsetpos, or rewind),
  32    depending on the underlying implementation.
  33 
  34    STREAM must not be wide-character oriented.  */
  35 
  36 #if HAVE___FWRITING
  37 /* glibc >= 2.2, Solaris >= 7, UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.34, Android API >= 29, musl libc */
  38 
  39 # if HAVE_STDIO_EXT_H
  40 #  include <stdio_ext.h>
  41 # endif
  42 # define fwriting(stream) (__fwriting (stream) != 0)
  43 
  44 #else
  45 
  46 # ifdef __cplusplus
  47 extern "C" {
  48 # endif
  49 
  50 extern bool fwriting (FILE *stream) _GL_ATTRIBUTE_PURE;
  51 
  52 # ifdef __cplusplus
  53 }
  54 # endif
  55 
  56 #endif

/* [previous][next][first][last][top][bottom][index][help] */