00001 /* 00002 Unix SMB/CIFS implementation. 00003 stdio replacement 00004 Copyright (C) Andrew Tridgell 2001 00005 00006 This program is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation; either version 2 of the License, or 00009 (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00019 */ 00020 00021 #ifndef _XFILE_H_ 00022 #define _XFILE_H_ 00023 /* 00024 see xfile.c for explanations 00025 */ 00026 00027 typedef struct { 00028 int fd; 00029 char *buf; 00030 char *next; 00031 int bufsize; 00032 int bufused; 00033 int open_flags; 00034 int buftype; 00035 int flags; 00036 } XFILE; 00037 00038 extern XFILE *x_stdin, *x_stdout, *x_stderr; 00039 00040 /* buffering type */ 00041 #define X_IOFBF 0 00042 #define X_IOLBF 1 00043 #define X_IONBF 2 00044 00045 #define x_getc(f) x_fgetc(f) 00046 00047 int x_vfprintf(XFILE *f, const char *format, va_list ap) PRINTF_ATTRIBUTE(2, 0); 00048 int x_fprintf(XFILE *f, const char *format, ...) PRINTF_ATTRIBUTE(2, 3); 00049 #endif /* _XFILE_H_ */