1 /* printf wrappers that fail immediately for non-file-related errors 2 Copyright (C) 2007-2021 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 #include <stdarg.h> 21 #include <stdio.h> 22 23 extern int xprintf (char const *restrict format, ...) 24 #if GNULIB_VPRINTF_POSIX 25 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 2)) 26 #else 27 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 1, 2)) 28 #endif 29 ; 30 31 extern int xvprintf (char const *restrict format, va_list args) 32 #if GNULIB_VPRINTF_POSIX 33 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 0)) 34 #else 35 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 1, 0)) 36 #endif 37 ; 38 39 extern int xfprintf (FILE *restrict stream, char const *restrict format, ...) 40 #if GNULIB_VFPRINTF_POSIX 41 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 3)) 42 #else 43 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 2, 3)) 44 #endif 45 ; 46 47 extern int xvfprintf (FILE *restrict stream, char const *restrict format, 48 va_list args) 49 #if GNULIB_VFPRINTF_POSIX 50 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 0)) 51 #else 52 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 2, 0)) 53 #endif 54 ; 55 56 #endif 57