#line 1 "stdio/freopen.c" #line 4 "stdio/freopen.c" #line 1 "stdio/iolib.h" #line 17 "stdio/iolib.h" #line 1 "/sys/include/ape/stdio.h" #pragma lib "/$M/lib/ape/libap.a" #line 8 "/sys/include/ape/stdio.h" #line 1 "/mips/include/ape/stdarg.h" typedef char *va_list; #line 10 "/mips/include/ape/stdarg.h" #line 9 "/sys/include/ape/stdio.h" #line 1 "/sys/include/ape/stddef.h" typedef long ptrdiff_t; typedef unsigned long size_t; typedef unsigned short wchar_t; #line 10 "/sys/include/ape/stdio.h" #line 30 "/sys/include/ape/stdio.h" typedef struct{ int fd; char flags; char state; char *buf; char *rp; char *wp; char *lp; size_t bufl; char unbuf[1]; }FILE; typedef long fpos_t; #line 48 "/sys/include/ape/stdio.h" extern int remove(const char *); extern int rename(const char *, const char *); extern FILE *tmpfile(void); extern char *tmpnam(char *); extern int fclose(FILE *); extern int fflush(FILE *); extern FILE *fopen(const char *, const char *); extern FILE *freopen(const char *, const char *, FILE *); extern void setbuf(FILE *, char *); extern int setvbuf(FILE *, char *, int, size_t); extern int fprintf(FILE *, const char *, ...); extern int fscanf(FILE *, const char *, ...); extern int printf(const char *, ...); extern int scanf(const char *, ...); extern int sprintf(char *, const char *, ...); extern int sscanf(const char *, const char *, ...); extern int vfprintf(FILE *, const char *, va_list); extern int vprintf(const char *, va_list); extern int vsprintf(char *, const char *, va_list); extern int vfscanf(FILE *, const char *, va_list); extern int fgetc(FILE *); extern char *fgets(char *, int, FILE *); extern int fputc(int, FILE *); extern int fputs(const char *, FILE *); extern int getc(FILE *); extern int _IO_getc(FILE *f); extern int getchar(void); extern char *gets(char *); extern int putc(int, FILE *); extern int _IO_putc(int, FILE *); extern int putchar(int); extern int puts(const char *); extern int ungetc(int, FILE *); extern size_t fread(void *, size_t, size_t, FILE *); extern size_t fwrite(const void *, size_t, size_t, FILE *); extern int fgetpos(FILE *, fpos_t *); extern int fseek(FILE *, long int, int); extern int fsetpos(FILE *, const fpos_t *); extern long int ftell(FILE *); extern void rewind(FILE *); extern void clearerr(FILE *); extern int feof(FILE *); extern int ferror(FILE *); extern void perror(const char *); extern FILE _IO_stream[90]; extern FILE *sopenr(const char *); extern FILE *sopenw(void); extern char *sclose(FILE *); extern char *rdline(FILE *, char **); extern int fileno(FILE *); extern FILE* fdopen(int, const char*); extern char *ctermid(char *); #line 18 "stdio/iolib.h" #line 1 "/sys/include/ape/stdlib.h" #pragma lib "/$M/lib/ape/libap.a" #line 1 "/sys/include/ape/stddef.h" #line 6 "/sys/include/ape/stdlib.h" typedef struct { int quot, rem; } div_t; typedef struct { long quot, rem; } ldiv_t; extern double atof(const char *nptr); extern int atoi(const char *nptr); extern long int atol(const char *nptr); extern double strtod(const char *nptr, char **endptr); extern long int strtol(const char *nptr, char **endptr, int base); extern unsigned long int strtoul(const char *nptr, char **endptr, int base); extern int rand(void); extern void srand(unsigned int seed); extern void *calloc(size_t nmemb, size_t size); extern void free(void *ptr); extern void *malloc(size_t size); extern void *realloc(void *ptr, size_t size); extern void abort(void); extern int atexit(void (*func)(void)); extern void exit(int status); extern char *getenv(const char *name); extern int system(const char *string); extern void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); extern void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); extern int abs(int j); extern div_t div(int numer, int denom); extern long int labs(long int j); extern ldiv_t ldiv(long int numer, long int denom); extern int mblen(const char *, size_t); extern int mbtowc(wchar_t *, const char *, size_t); extern int wctomb(char *, wchar_t); extern size_t mbstowcs(wchar_t *, const char *, size_t); extern size_t wcstombs(char *, const wchar_t *, size_t); #line 19 "stdio/iolib.h" #line 1 "/sys/include/ape/sys/types.h" typedef unsigned short ino_t; typedef unsigned short dev_t; typedef long off_t; typedef unsigned short mode_t; typedef short uid_t; typedef short gid_t; typedef short nlink_t; typedef int pid_t; typedef long ssize_t; typedef long time_t; #line 20 "stdio/iolib.h" #line 1 "/sys/include/ape/unistd.h" #pragma lib "/$M/lib/ape/libap.a" extern int execl(const char *, const char *, ...); extern int execv(const char *, const char **); extern int execle(const char *, const char *, const char *, ...); extern int execve(const char *, const char **, const char **); extern int execlp(const char *, const char *, ...); extern int execvp(const char *, const char **); extern void _exit(int); extern unsigned int alarm(unsigned int); extern int pause(void); extern unsigned int sleep(unsigned int); extern pid_t fork(void); extern char *getlogin(void); extern char *cuserid(char *); extern char *ttyname(int); extern int isatty(int); extern long sysconf(int); extern pid_t getpid(void); extern pid_t getppid(void); extern uid_t getuid(void); extern uid_t geteuid(void); extern gid_t getgid(void); extern gid_t getegid(void); extern int setuid(uid_t); extern int setgid(gid_t); extern int getgroups(int, gid_t *); extern pid_t getpgrp(void); extern int setpgid(pid_t, pid_t); extern pid_t setsid(void); extern int chdir(const char *); extern int link(const char *, const char *); extern char *getcwd(char *, size_t); extern int unlink(const char *); extern int rmdir(const char *); extern int rename(const char *, const char *); extern int access(const char *, int); extern long pathconf(const char *, int); extern long fpathconf(int, int); extern int chown(const char *, uid_t, gid_t); extern int pipe(int *); extern int dup(int); extern int dup2(int, int); extern int close(int); extern ssize_t read(int, void *, size_t); extern ssize_t write(int, void *, size_t); extern off_t lseek(int, off_t, int); extern pid_t tcgetpgrp(int); extern int tcsetpgrp(int, pid_t); #line 21 "stdio/iolib.h" #line 1 "/sys/include/ape/fcntl.h" #pragma lib "/$M/lib/ape/libap.a" struct flock { short l_type; short l_whence; off_t l_start; off_t l_len; pid_t l_pid; }; extern int fcntl(int, int, ...); extern int open(const char *, int, ...); extern int creat(const char *, mode_t); #line 22 "stdio/iolib.h" #line 26 "stdio/iolib.h" #line 33 "stdio/iolib.h" char *strerror(int errno); int _IO_setvbuf(FILE *); #line 5 "stdio/freopen.c" #line 15 "stdio/freopen.c" FILE *freopen(const char *nm, const char *mode, FILE *f){ if(f->state!= 0) fclose(f); if(mode[1]=='+' || mode[2]=='+'){ if(mode[0]=='w') close(creat(nm, 0666)); f->fd=open(nm,2); if(f->fd==-1){ close(creat(nm, 0666)); f->fd=open(nm,2); } if(mode[0]=='a') lseek(f->fd, 0L, 2); } else{ switch(mode[0]){ default: return 0; case 'r': f->fd=open(nm,0); break; case 'w': f->fd=creat(nm, 0666); break; case 'a': f->fd=open(nm,1); if(f->fd==-1) f->fd=creat(nm, 0666); lseek(f->fd, 0L, 2); break; } } if(f->fd==-1) return 0; f->flags=(mode[0]=='a')? 8 : 0; f->state= 1; f->buf=0; f->rp=0; f->wp=0; f->lp=0; return f; }