root/src/sysstdio.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


     1 /* Standard I/O for Emacs.
     2 
     3 Copyright 2013-2023 Free Software Foundation, Inc.
     4 
     5 This file is part of GNU Emacs.
     6 
     7 GNU Emacs is free software: you can redistribute it and/or modify
     8 it under the terms of the GNU General Public License as published by
     9 the Free Software Foundation, either version 3 of the License, or (at
    10 your option) any later version.
    11 
    12 GNU Emacs is distributed in the hope that it will be useful,
    13 but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 GNU General Public License for more details.
    16 
    17 You should have received a copy of the GNU General Public License
    18 along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
    19 
    20 #ifndef EMACS_SYSSTDIO_H
    21 #define EMACS_SYSSTDIO_H
    22 
    23 #include <stdarg.h>
    24 #include <fcntl.h>
    25 #include <limits.h>
    26 #include <stdio.h>
    27 
    28 #include <attribute.h>
    29 #include <unlocked-io.h>
    30 
    31 extern FILE *emacs_fopen (char const *, char const *)
    32   ATTRIBUTE_MALLOC ATTRIBUTE_DEALLOC (fclose, 1);
    33 extern void errputc (int);
    34 extern void errwrite (void const *, ptrdiff_t);
    35 extern void close_output_streams (void);
    36 
    37 #if O_BINARY
    38 # define FOPEN_BINARY "b"
    39 # define FOPEN_TEXT "t"
    40 #else
    41 # define FOPEN_BINARY ""
    42 # define FOPEN_TEXT ""
    43 #endif
    44 
    45 #ifndef PIPE_BUF
    46  #define PIPE_BUF MAX_ALLOCA
    47 #endif
    48 
    49 #endif /* EMACS_SYSSTDIO_H */

/* [<][>][^][v][top][bottom][index][help] */