1 /* fakestdio.h 2 * 3 * Copyright (C) 2000, by Larry Wall and others 4 * 5 * You may distribute under the terms of either the GNU General Public 6 * License or the Artistic License, as specified in the README file. 7 * 8 */ 9 10 /* 11 * This is "source level" stdio compatibility mode. 12 * We try and #define stdio functions in terms of PerlIO. 13 */ 14 #define _CANNOT "CANNOT" 15 #undef FILE 16 #define FILE PerlIO 17 #undef clearerr 18 #undef fclose 19 #undef fdopen 20 #undef feof 21 #undef ferror 22 #undef fflush 23 #undef fgetc 24 #undef fgetpos 25 #undef fgets 26 #undef fileno 27 #undef flockfile 28 #undef fopen 29 #undef fprintf 30 #undef fputc 31 #undef fputs 32 #undef fread 33 #undef freopen 34 #undef fscanf 35 #undef fseek 36 #undef fsetpos 37 #undef ftell 38 #undef ftrylockfile 39 #undef funlockfile 40 #undef fwrite 41 #undef getc 42 #undef getc_unlocked 43 #undef getw 44 #undef pclose 45 #undef popen 46 #undef putc 47 #undef putc_unlocked 48 #undef putw 49 #undef rewind 50 #undef setbuf 51 #undef setvbuf 52 #undef stderr 53 #undef stdin 54 #undef stdout 55 #undef tmpfile 56 #undef ungetc 57 #undef vfprintf 58 #undef printf 59 60 /* printf used to live in perl.h like this - more sophisticated 61 than the rest 62 */ 63 #if defined(__GNUC__) && !defined(__STRICT_ANSI__) && !defined(PERL_GCC_PEDANTIC) 64 #define printf(fmt,args...) PerlIO_stdoutf(fmt,##args) 65 #else 66 #define printf PerlIO_stdoutf 67 #endif 68 #endif 69 70 #define fprintf PerlIO_printf 71 #define stdin PerlIO_stdin() 72 #define stdout PerlIO_stdout() 73 #define stderr PerlIO_stderr() 74 #define tmpfile() PerlIO_tmpfile() 75 #define fclose(f) PerlIO_close(f) 76 #define fflush(f) PerlIO_flush(f) 77 #define fopen(p,m) PerlIO_open(p,m) 78 #define vfprintf(f,fmt,a) PerlIO_vprintf(f,fmt,a) 79 #define fgetc(f) PerlIO_getc(f) 80 #define fputc(c,f) PerlIO_putc(f,c) 81 #define fputs(s,f) PerlIO_puts(f,s) 82 #define getc(f) PerlIO_getc(f) 83 #define getc_unlocked(f) PerlIO_getc(f) 84 #define putc(c,f) PerlIO_putc(f,c) 85 #define putc_unlocked(c,f) PerlIO_putc(c,f) 86 #define ungetc(c,f) PerlIO_ungetc(f,c) 87 #if 0 88 /* return values of read/write need work */ 89 #define fread(b,s,c,f) PerlIO_read(f,b,(s*c)) 90 #define fwrite(b,s,c,f) PerlIO_write(f,b,(s*c)) 91 #else 92 #define fread(b,s,c,f) _CANNOT fread 93 #define fwrite(b,s,c,f) _CANNOT fwrite 94 #endif 95 #define fseek(f,o,w) PerlIO_seek(f,o,w) 96 #define ftell(f) PerlIO_tell(f) 97 #define rewind(f) PerlIO_rewind(f) 98 #define clearerr(f) PerlIO_clearerr(f) 99 #define feof(f) PerlIO_eof(f) 100 #define ferror(f) PerlIO_error(f) 101 #define fdopen(fd,p) PerlIO_fdopen(fd,p) 102 #define fileno(f) PerlIO_fileno(f) 103 #define popen(c,m) my_popen(c,m) 104 #define pclose(f) my_pclose(f) 105 106 #define fsetpos(f,p) _CANNOT _fsetpos_ 107 #define fgetpos(f,p) _CANNOT _fgetpos_ 108 109 #define __filbuf(f) _CANNOT __filbuf_ 110 #define _filbuf(f) _CANNOT _filbuf_ 111 #define __flsbuf(c,f) _CANNOT __flsbuf_ 112 #define _flsbuf(c,f) _CANNOT _flsbuf_ 113 #define getw(f) _CANNOT _getw_ 114 #define putw(v,f) _CANNOT _putw_ 115 #if SFIO_VERSION < 20000101L 116 #define flockfile(f) _CANNOT _flockfile_ 117 #define ftrylockfile(f) _CANNOT _ftrylockfile_ 118 #define funlockfile(f) _CANNOT _funlockfile_ 119 #endif 120 #define freopen(p,m,f) _CANNOT _freopen_ 121 #define setbuf(f,b) _CANNOT _setbuf_ 122 #define setvbuf(f,b,x,s) _CANNOT _setvbuf_ 123 #define fscanf _CANNOT _fscanf_ 124 #define fgets(s,n,f) _CANNOT _fgets_ 125 126