OLD | NEW |
(Empty) | |
| 1 /* Prefer faster, non-thread-safe stdio functions if available. |
| 2 |
| 3 Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. |
| 4 |
| 5 This program is free software: you can redistribute it and/or modify |
| 6 it under the terms of the GNU General Public License as published by |
| 7 the Free Software Foundation; either version 3 of the License, or |
| 8 (at your option) any later version. |
| 9 |
| 10 This program is distributed in the hope that it will be useful, |
| 11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 13 GNU General Public License for more details. |
| 14 |
| 15 You should have received a copy of the GNU General Public License |
| 16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| 17 |
| 18 /* Written by Jim Meyering. */ |
| 19 |
| 20 #ifndef UNLOCKED_IO_H |
| 21 # define UNLOCKED_IO_H 1 |
| 22 |
| 23 /* These are wrappers for functions/macros from the GNU C library, and |
| 24 from other C libraries supporting POSIX's optional thread-safe functions. |
| 25 |
| 26 The standard I/O functions are thread-safe. These *_unlocked ones are |
| 27 more efficient but not thread-safe. That they're not thread-safe is |
| 28 fine since all of the applications in this package are single threaded. |
| 29 |
| 30 Also, some code that is shared with the GNU C library may invoke |
| 31 the *_unlocked functions directly. On hosts that lack those |
| 32 functions, invoke the non-thread-safe versions instead. */ |
| 33 |
| 34 # include <stdio.h> |
| 35 |
| 36 # if HAVE_DECL_CLEARERR_UNLOCKED |
| 37 # undef clearerr |
| 38 # define clearerr(x) clearerr_unlocked (x) |
| 39 # else |
| 40 # define clearerr_unlocked(x) clearerr (x) |
| 41 # endif |
| 42 |
| 43 # if HAVE_DECL_FEOF_UNLOCKED |
| 44 # undef feof |
| 45 # define feof(x) feof_unlocked (x) |
| 46 # else |
| 47 # define feof_unlocked(x) feof (x) |
| 48 # endif |
| 49 |
| 50 # if HAVE_DECL_FERROR_UNLOCKED |
| 51 # undef ferror |
| 52 # define ferror(x) ferror_unlocked (x) |
| 53 # else |
| 54 # define ferror_unlocked(x) ferror (x) |
| 55 # endif |
| 56 |
| 57 # if HAVE_DECL_FFLUSH_UNLOCKED |
| 58 # undef fflush |
| 59 # define fflush(x) fflush_unlocked (x) |
| 60 # else |
| 61 # define fflush_unlocked(x) fflush (x) |
| 62 # endif |
| 63 |
| 64 # if HAVE_DECL_FGETS_UNLOCKED |
| 65 # undef fgets |
| 66 # define fgets(x,y,z) fgets_unlocked (x,y,z) |
| 67 # else |
| 68 # define fgets_unlocked(x,y,z) fgets (x,y,z) |
| 69 # endif |
| 70 |
| 71 # if HAVE_DECL_FPUTC_UNLOCKED |
| 72 # undef fputc |
| 73 # define fputc(x,y) fputc_unlocked (x,y) |
| 74 # else |
| 75 # define fputc_unlocked(x,y) fputc (x,y) |
| 76 # endif |
| 77 |
| 78 # if HAVE_DECL_FPUTS_UNLOCKED |
| 79 # undef fputs |
| 80 # define fputs(x,y) fputs_unlocked (x,y) |
| 81 # else |
| 82 # define fputs_unlocked(x,y) fputs (x,y) |
| 83 # endif |
| 84 |
| 85 # if HAVE_DECL_FREAD_UNLOCKED |
| 86 # undef fread |
| 87 # define fread(w,x,y,z) fread_unlocked (w,x,y,z) |
| 88 # else |
| 89 # define fread_unlocked(w,x,y,z) fread (w,x,y,z) |
| 90 # endif |
| 91 |
| 92 # if HAVE_DECL_FWRITE_UNLOCKED |
| 93 # undef fwrite |
| 94 # define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z) |
| 95 # else |
| 96 # define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z) |
| 97 # endif |
| 98 |
| 99 # if HAVE_DECL_GETC_UNLOCKED |
| 100 # undef getc |
| 101 # define getc(x) getc_unlocked (x) |
| 102 # else |
| 103 # define getc_unlocked(x) getc (x) |
| 104 # endif |
| 105 |
| 106 # if HAVE_DECL_GETCHAR_UNLOCKED |
| 107 # undef getchar |
| 108 # define getchar() getchar_unlocked () |
| 109 # else |
| 110 # define getchar_unlocked() getchar () |
| 111 # endif |
| 112 |
| 113 # if HAVE_DECL_PUTC_UNLOCKED |
| 114 # undef putc |
| 115 # define putc(x,y) putc_unlocked (x,y) |
| 116 # else |
| 117 # define putc_unlocked(x,y) putc (x,y) |
| 118 # endif |
| 119 |
| 120 # if HAVE_DECL_PUTCHAR_UNLOCKED |
| 121 # undef putchar |
| 122 # define putchar(x) putchar_unlocked (x) |
| 123 # else |
| 124 # define putchar_unlocked(x) putchar (x) |
| 125 # endif |
| 126 |
| 127 # undef flockfile |
| 128 # define flockfile(x) ((void) 0) |
| 129 |
| 130 # undef ftrylockfile |
| 131 # define ftrylockfile(x) 0 |
| 132 |
| 133 # undef funlockfile |
| 134 # define funlockfile(x) ((void) 0) |
| 135 |
| 136 #endif /* UNLOCKED_IO_H */ |
OLD | NEW |