xref: /llvm-project-15.0.7/libcxx/include/cstdio (revision 385cc25a)
13e519524SHoward Hinnant// -*- C++ -*-
2eb8650a7SLouis Dionne//===----------------------------------------------------------------------===//
33e519524SHoward Hinnant//
457b08b09SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
557b08b09SChandler Carruth// See https://llvm.org/LICENSE.txt for license information.
657b08b09SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
73e519524SHoward Hinnant//
83e519524SHoward Hinnant//===----------------------------------------------------------------------===//
93e519524SHoward Hinnant
103e519524SHoward Hinnant#ifndef _LIBCPP_CSTDIO
113e519524SHoward Hinnant#define _LIBCPP_CSTDIO
123e519524SHoward Hinnant
133e519524SHoward Hinnant/*
143e519524SHoward Hinnant    cstdio synopsis
153e519524SHoward Hinnant
163e519524SHoward HinnantMacros:
173e519524SHoward Hinnant
183e519524SHoward Hinnant    BUFSIZ
193e519524SHoward Hinnant    EOF
203e519524SHoward Hinnant    FILENAME_MAX
213e519524SHoward Hinnant    FOPEN_MAX
223e519524SHoward Hinnant    L_tmpnam
233e519524SHoward Hinnant    NULL
243e519524SHoward Hinnant    SEEK_CUR
253e519524SHoward Hinnant    SEEK_END
263e519524SHoward Hinnant    SEEK_SET
273e519524SHoward Hinnant    TMP_MAX
283e519524SHoward Hinnant    _IOFBF
293e519524SHoward Hinnant    _IOLBF
303e519524SHoward Hinnant    _IONBF
313e519524SHoward Hinnant    stderr
323e519524SHoward Hinnant    stdin
333e519524SHoward Hinnant    stdout
343e519524SHoward Hinnant
353e519524SHoward Hinnantnamespace std
363e519524SHoward Hinnant{
373e519524SHoward Hinnant
383e519524SHoward HinnantTypes:
393e519524SHoward Hinnant
403e519524SHoward HinnantFILE
413e519524SHoward Hinnantfpos_t
423e519524SHoward Hinnantsize_t
433e519524SHoward Hinnant
443e519524SHoward Hinnantint remove(const char* filename);
453e519524SHoward Hinnantint rename(const char* old, const char* new);
463e519524SHoward HinnantFILE* tmpfile(void);
473e519524SHoward Hinnantchar* tmpnam(char* s);
483e519524SHoward Hinnantint fclose(FILE* stream);
493e519524SHoward Hinnantint fflush(FILE* stream);
503e519524SHoward HinnantFILE* fopen(const char* restrict filename, const char* restrict mode);
513e519524SHoward HinnantFILE* freopen(const char* restrict filename, const char * restrict mode,
523e519524SHoward Hinnant              FILE * restrict stream);
533e519524SHoward Hinnantvoid setbuf(FILE* restrict stream, char* restrict buf);
543e519524SHoward Hinnantint setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size);
553e519524SHoward Hinnantint fprintf(FILE* restrict stream, const char* restrict format, ...);
563e519524SHoward Hinnantint fscanf(FILE* restrict stream, const char * restrict format, ...);
573e519524SHoward Hinnantint printf(const char* restrict format, ...);
583e519524SHoward Hinnantint scanf(const char* restrict format, ...);
593e519524SHoward Hinnantint snprintf(char* restrict s, size_t n, const char* restrict format, ...);    // C99
603e519524SHoward Hinnantint sprintf(char* restrict s, const char* restrict format, ...);
613e519524SHoward Hinnantint sscanf(const char* restrict s, const char* restrict format, ...);
623e519524SHoward Hinnantint vfprintf(FILE* restrict stream, const char* restrict format, va_list arg);
633e519524SHoward Hinnantint vfscanf(FILE* restrict stream, const char* restrict format, va_list arg);  // C99
643e519524SHoward Hinnantint vprintf(const char* restrict format, va_list arg);
653e519524SHoward Hinnantint vscanf(const char* restrict format, va_list arg);                          // C99
663e519524SHoward Hinnantint vsnprintf(char* restrict s, size_t n, const char* restrict format,         // C99
673e519524SHoward Hinnant              va_list arg);
683e519524SHoward Hinnantint vsprintf(char* restrict s, const char* restrict format, va_list arg);
693e519524SHoward Hinnantint vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99
703e519524SHoward Hinnantint fgetc(FILE* stream);
713e519524SHoward Hinnantchar* fgets(char* restrict s, int n, FILE* restrict stream);
723e519524SHoward Hinnantint fputc(int c, FILE* stream);
733e519524SHoward Hinnantint fputs(const char* restrict s, FILE* restrict stream);
743e519524SHoward Hinnantint getc(FILE* stream);
753e519524SHoward Hinnantint getchar(void);
768de32cb3SMarshall Clowchar* gets(char* s);  // removed in C++14
773e519524SHoward Hinnantint putc(int c, FILE* stream);
783e519524SHoward Hinnantint putchar(int c);
793e519524SHoward Hinnantint puts(const char* s);
803e519524SHoward Hinnantint ungetc(int c, FILE* stream);
813e519524SHoward Hinnantsize_t fread(void* restrict ptr, size_t size, size_t nmemb,
823e519524SHoward Hinnant             FILE* restrict stream);
833e519524SHoward Hinnantsize_t fwrite(const void* restrict ptr, size_t size, size_t nmemb,
843e519524SHoward Hinnant              FILE* restrict stream);
853e519524SHoward Hinnantint fgetpos(FILE* restrict stream, fpos_t* restrict pos);
863e519524SHoward Hinnantint fseek(FILE* stream, long offset, int whence);
873e519524SHoward Hinnantint fsetpos(FILE*stream, const fpos_t* pos);
883e519524SHoward Hinnantlong ftell(FILE* stream);
893e519524SHoward Hinnantvoid rewind(FILE* stream);
903e519524SHoward Hinnantvoid clearerr(FILE* stream);
913e519524SHoward Hinnantint feof(FILE* stream);
923e519524SHoward Hinnantint ferror(FILE* stream);
933e519524SHoward Hinnantvoid perror(const char* s);
943e519524SHoward Hinnant
953e519524SHoward Hinnant}  // std
963e519524SHoward Hinnant*/
973e519524SHoward Hinnant
98*385cc25aSLouis Dionne#include <__assert> // all public C++ headers provide the assertion handler
993e519524SHoward Hinnant#include <__config>
1003e519524SHoward Hinnant#include <stdio.h>
1013e519524SHoward Hinnant
102073458b1SHoward Hinnant#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
1033e519524SHoward Hinnant#  pragma GCC system_header
104073458b1SHoward Hinnant#endif
1053e519524SHoward Hinnant
1063e519524SHoward Hinnant_LIBCPP_BEGIN_NAMESPACE_STD
1073e519524SHoward Hinnant
108a9c9183cSLouis Dionneusing ::FILE _LIBCPP_USING_IF_EXISTS;
109a9c9183cSLouis Dionneusing ::fpos_t _LIBCPP_USING_IF_EXISTS;
110a9c9183cSLouis Dionneusing ::size_t _LIBCPP_USING_IF_EXISTS;
1113e519524SHoward Hinnant
112a9c9183cSLouis Dionneusing ::fclose _LIBCPP_USING_IF_EXISTS;
113a9c9183cSLouis Dionneusing ::fflush _LIBCPP_USING_IF_EXISTS;
114a9c9183cSLouis Dionneusing ::setbuf _LIBCPP_USING_IF_EXISTS;
115a9c9183cSLouis Dionneusing ::setvbuf _LIBCPP_USING_IF_EXISTS;
116a9c9183cSLouis Dionneusing ::fprintf _LIBCPP_USING_IF_EXISTS;
117a9c9183cSLouis Dionneusing ::fscanf _LIBCPP_USING_IF_EXISTS;
118a9c9183cSLouis Dionneusing ::snprintf _LIBCPP_USING_IF_EXISTS;
119a9c9183cSLouis Dionneusing ::sprintf _LIBCPP_USING_IF_EXISTS;
120a9c9183cSLouis Dionneusing ::sscanf _LIBCPP_USING_IF_EXISTS;
121a9c9183cSLouis Dionneusing ::vfprintf _LIBCPP_USING_IF_EXISTS;
122a9c9183cSLouis Dionneusing ::vfscanf _LIBCPP_USING_IF_EXISTS;
123a9c9183cSLouis Dionneusing ::vsscanf _LIBCPP_USING_IF_EXISTS;
124a9c9183cSLouis Dionneusing ::vsnprintf _LIBCPP_USING_IF_EXISTS;
125a9c9183cSLouis Dionneusing ::vsprintf _LIBCPP_USING_IF_EXISTS;
126a9c9183cSLouis Dionneusing ::fgetc _LIBCPP_USING_IF_EXISTS;
127a9c9183cSLouis Dionneusing ::fgets _LIBCPP_USING_IF_EXISTS;
128a9c9183cSLouis Dionneusing ::fputc _LIBCPP_USING_IF_EXISTS;
129a9c9183cSLouis Dionneusing ::fputs _LIBCPP_USING_IF_EXISTS;
130a9c9183cSLouis Dionneusing ::getc _LIBCPP_USING_IF_EXISTS;
131a9c9183cSLouis Dionneusing ::putc _LIBCPP_USING_IF_EXISTS;
132a9c9183cSLouis Dionneusing ::ungetc _LIBCPP_USING_IF_EXISTS;
133a9c9183cSLouis Dionneusing ::fread _LIBCPP_USING_IF_EXISTS;
134a9c9183cSLouis Dionneusing ::fwrite _LIBCPP_USING_IF_EXISTS;
13575c44086SDan Albert#ifndef _LIBCPP_HAS_NO_FGETPOS_FSETPOS
136a9c9183cSLouis Dionneusing ::fgetpos _LIBCPP_USING_IF_EXISTS;
13775c44086SDan Albert#endif
138a9c9183cSLouis Dionneusing ::fseek _LIBCPP_USING_IF_EXISTS;
13975c44086SDan Albert#ifndef _LIBCPP_HAS_NO_FGETPOS_FSETPOS
140a9c9183cSLouis Dionneusing ::fsetpos _LIBCPP_USING_IF_EXISTS;
14175c44086SDan Albert#endif
142a9c9183cSLouis Dionneusing ::ftell _LIBCPP_USING_IF_EXISTS;
143a9c9183cSLouis Dionneusing ::rewind _LIBCPP_USING_IF_EXISTS;
144a9c9183cSLouis Dionneusing ::clearerr _LIBCPP_USING_IF_EXISTS;
145a9c9183cSLouis Dionneusing ::feof _LIBCPP_USING_IF_EXISTS;
146a9c9183cSLouis Dionneusing ::ferror _LIBCPP_USING_IF_EXISTS;
147a9c9183cSLouis Dionneusing ::perror _LIBCPP_USING_IF_EXISTS;
1483e519524SHoward Hinnant
149a9c9183cSLouis Dionneusing ::fopen _LIBCPP_USING_IF_EXISTS;
150a9c9183cSLouis Dionneusing ::freopen _LIBCPP_USING_IF_EXISTS;
151a9c9183cSLouis Dionneusing ::remove _LIBCPP_USING_IF_EXISTS;
152a9c9183cSLouis Dionneusing ::rename _LIBCPP_USING_IF_EXISTS;
153a9c9183cSLouis Dionneusing ::tmpfile _LIBCPP_USING_IF_EXISTS;
154a9c9183cSLouis Dionneusing ::tmpnam _LIBCPP_USING_IF_EXISTS;
155f4ac884fSEd Schouten
156a9c9183cSLouis Dionneusing ::getchar _LIBCPP_USING_IF_EXISTS;
1575bd4a480SDimitry Andric#if _LIBCPP_STD_VER <= 11 && !defined(_LIBCPP_C_HAS_NO_GETS)
158a9c9183cSLouis Dionneusing ::gets _LIBCPP_USING_IF_EXISTS;
159f4ac884fSEd Schouten#endif
160a9c9183cSLouis Dionneusing ::scanf _LIBCPP_USING_IF_EXISTS;
161a9c9183cSLouis Dionneusing ::vscanf _LIBCPP_USING_IF_EXISTS;
162f4ac884fSEd Schouten
163a9c9183cSLouis Dionneusing ::printf _LIBCPP_USING_IF_EXISTS;
164a9c9183cSLouis Dionneusing ::putchar _LIBCPP_USING_IF_EXISTS;
165a9c9183cSLouis Dionneusing ::puts _LIBCPP_USING_IF_EXISTS;
166a9c9183cSLouis Dionneusing ::vprintf _LIBCPP_USING_IF_EXISTS;
167f4ac884fSEd Schouten
1683e519524SHoward Hinnant_LIBCPP_END_NAMESPACE_STD
1693e519524SHoward Hinnant
1703e519524SHoward Hinnant#endif // _LIBCPP_CSTDIO
171