(root)/
coreutils-9.4/
lib/
xprintf.h
       1  /* printf wrappers that fail immediately for non-file-related errors
       2     Copyright (C) 2007-2023 Free Software Foundation, Inc.
       3  
       4     This program is free software: you can redistribute it and/or modify
       5     it under the terms of the GNU General Public License as published by
       6     the Free Software Foundation, either version 3 of the License, or
       7     (at your option) any later version.
       8  
       9     This program 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 General Public License for more details.
      13  
      14     You should have received a copy of the GNU General Public License
      15     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      16  
      17  #ifndef _XPRINTF_H
      18  #define _XPRINTF_H
      19  
      20  /* This file uses _GL_ATTRIBUTE_FORMAT.  */
      21  #if !_GL_CONFIG_H_INCLUDED
      22   #error "Please include config.h first."
      23  #endif
      24  
      25  #include <stdarg.h>
      26  #include <stdio.h>
      27  
      28  extern int xprintf (char const *restrict format, ...)
      29  #if GNULIB_VPRINTF_POSIX
      30       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 2))
      31  #else
      32       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 1, 2))
      33  #endif
      34       ;
      35  
      36  extern int xvprintf (char const *restrict format, va_list args)
      37  #if GNULIB_VPRINTF_POSIX
      38       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 0))
      39  #else
      40       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 1, 0))
      41  #endif
      42       ;
      43  
      44  extern int xfprintf (FILE *restrict stream, char const *restrict format, ...)
      45  #if GNULIB_VFPRINTF_POSIX
      46       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 3))
      47  #else
      48       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 2, 3))
      49  #endif
      50       ;
      51  
      52  extern int xvfprintf (FILE *restrict stream, char const *restrict format,
      53                        va_list args)
      54  #if GNULIB_VFPRINTF_POSIX
      55       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 0))
      56  #else
      57       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 2, 0))
      58  #endif
      59       ;
      60  
      61  #endif