#ifndef _INCLUDE_STDIO_H
#define _INCLUDE_STDIO_H

#ifndef __INC_POS_PEXEC_TYPES_H
#include <pExec/Types.h>
#endif


#ifdef __cplusplus
extern "C" {
#endif

struct pOS_FileHandle;
typedef struct pOS_FileHandle FILE;
extern FILE *pstd__in, *pstd__out, *pstd__err;
#define stdin (pstd__in)
#define stdout (pstd__out)
#define stderr (pstd__err)
#define FILENAME_MAX 300
#define FOPEN_MAX 99999
#define STREAM_MAXSTRING 96     // maximal von "gets" in String gelesene Zeichen

#ifndef NULL
 #define NULL 0
#endif

#ifndef _SIZE_T
 #define _SIZE_T
 typedef unsigned int size_t;
#endif

typedef unsigned va_list;

#define EOF (-1)

int getc(FILE *);
int fgetc(FILE*);
int getchar(void);
int ungetc(int,FILE*);

char *fgets(char*,int,FILE*);
char *gets(char*);

int fputc(int,FILE*);
int putc(int,FILE*);
int putchar(int);
int fputs(const char*,FILE*);
int puts(const char*);
void perror(const char*);

FILE *fopen(const char*,const char*);
FILE *freopen(const char*,const char*,FILE*);
int fclose(FILE*);
int feof(FILE*);
int ferror(FILE*);
void clearerr(FILE*);

#define _IOFBF 1
#define _IOLBF (-1)
#define _IONBF 0
#define BUFSIZ 200
int setvbuf(FILE*,char*,int,unsigned);
void setbuf(FILE*,char*);
int fflush(FILE*);

int printf(const char*,...);
int fprintf(FILE*,const char*,...);
int sprintf(char*,const char*,...);
int vprintf(const char*, va_list);
int vfprintf(FILE*,const char*,va_list);
int vsprintf(char*,const char*,va_list);

int scanf(const char*, ...);
int fscanf(FILE*,const char*, ...);
int sscanf(char*,const char*, ...);

int remove(const char*);
int rename(const char*,const char*);

#define L_tmpnam 40
#define TMP_MAX 0x10000
char *tmpnam(char s[L_tmpnam]);
FILE *tmpfile(void);

unsigned fread(void *,unsigned,unsigned,FILE*);
unsigned fwrite(const void *, unsigned,unsigned,FILE*);

#define SEEK_CUR 0
#define SEEK_END 1
#define SEEK_SET (-1)

typedef int fpos_t;
int  fseek(FILE*,long,int);
long ftell(FILE*);
void rewind(FILE*);
int  fgetpos(FILE*,int*);
int  fsetpos(FILE*,const int*);

void exit(int);

#ifdef __cplusplus
}
#endif

#endif
