/****************************************************************************** * Copyright (c) 2004, 2008 IBM Corporation * All rights reserved. * This program and the accompanying materials * are made available under the terms of the BSD License * which accompanies this distribution, and is available at * http://www.opensource.org/licenses/bsd-license.php * * Contributors: * IBM Corporation - initial implementation *****************************************************************************/ #ifndef _STDIO_H #define _STDIO_H #include #include "stddef.h" #define EOF (-1) #define _IONBF 0 #define _IOLBF 1 #define _IOFBF 2 #define BUFSIZ 80 typedef struct { int fd; int mode; int pos; char *buf; int bufsiz; } FILE; extern FILE stdin_data; extern FILE stdout_data; extern FILE stderr_data; #define stdin (&stdin_data) #define stdout (&stdout_data) #define stderr (&stderr_data) int fileno(FILE *stream); int _printf(const char *format, ...) __attribute__((format (printf, 1, 2))); #ifndef pr_fmt #define pr_fmt(fmt) fmt #endif #define printf(f, ...) do { _printf(pr_fmt(f), ##__VA_ARGS__); } while(0) int fprintf(FILE *stream, const char *format, ...) __attribute__((format (printf, 2, 3))); int snprintf(char *str, size_t size, const char *format, ...) __attribute__((format (printf, 3, 4))); int vfprintf(FILE *stream, const char *format, va_list); int vsnprintf(char *str, size_t size, const char *format, va_list); void setbuf(FILE *stream, char *buf); int setvbuf(FILE *stream, char *buf, int mode , size_t size); int fputc(int ch, FILE *stream); #define putc(ch, stream) fputc(ch, stream) int putchar(int ch); int puts(const char *str); int fputs(const char *str, FILE *stream); int scanf(const char *format, ...) __attribute__((format (scanf, 1, 2))); int fscanf(FILE *stream, const char *format, ...) __attribute__((format (scanf, 2, 3))); int vfscanf(FILE *stream, const char *format, va_list); int vsscanf(const char *str, const char *format, va_list); int getc(FILE *stream); int getchar(void); #endif