Rev 6431 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6431 | Rev 6432 | ||
---|---|---|---|
1 | #ifndef stdio_h |
1 | #ifndef stdio_h |
2 | #define stdio_h |
2 | #define stdio_h |
3 | 3 | ||
4 | #include "kolibrisys.h" |
4 | #include "kolibrisys.h" |
5 | #include |
5 | #include |
6 | /* use stdarg.h |
6 | /* use stdarg.h |
7 | typedef char *va_list; |
7 | typedef char *va_list; |
8 | #define _roundsize(n) ( (sizeof(n) + 3) & ~3 ) |
8 | #define _roundsize(n) ( (sizeof(n) + 3) & ~3 ) |
9 | #define va_start(ap,v) (ap = (va_list)&v+_roundsize(v)) |
9 | #define va_start(ap,v) (ap = (va_list)&v+_roundsize(v)) |
10 | #define va_arg(ap,t) ( *(t *)((ap += _roundsize(t)) - _roundsize(t)) ) |
10 | #define va_arg(ap,t) ( *(t *)((ap += _roundsize(t)) - _roundsize(t)) ) |
11 | #define va_end(ap) (ap = (va_list)0) |
11 | #define va_end(ap) (ap = (va_list)0) |
12 | */ |
12 | */ |
13 | #ifndef NULL |
13 | #ifndef NULL |
14 | # define NULL ((void*)0) |
14 | # define NULL ((void*)0) |
15 | #endif |
15 | #endif |
16 | 16 | ||
17 | int format_print(char *dest, size_t maxlen,const char *fmt0, va_list argp); |
17 | int format_print(char *dest, size_t maxlen,const char *fmt0, va_list argp); |
18 | 18 | ||
19 | typedef struct { |
19 | typedef struct { |
20 | char* buffer; |
20 | char* buffer; |
21 | dword buffersize; |
21 | dword buffersize; |
22 | dword filesize; |
22 | dword filesize; |
23 | dword filepos; |
23 | dword filepos; |
24 | char* filename; |
24 | char* filename; |
25 | int mode; |
25 | int mode; |
26 | } FILE; |
26 | } FILE; |
27 | 27 | ||
28 | #define stderr ((FILE*)3) /* works inly for fprintf!!! */ |
28 | #define stderr ((FILE*)3) /* works inly for fprintf!!! */ |
29 | 29 | ||
30 | 30 | ||
31 | #define FILE_OPEN_READ 0 |
31 | #define FILE_OPEN_READ 0 |
32 | #define FILE_OPEN_WRITE 1 |
32 | #define FILE_OPEN_WRITE 1 |
33 | #define FILE_OPEN_APPEND 2 |
33 | #define FILE_OPEN_APPEND 2 |
34 | #define FILE_OPEN_TEXT 4 |
34 | #define FILE_OPEN_TEXT 4 |
35 | #define FILE_OPEN_PLUS 8 |
35 | #define FILE_OPEN_PLUS 8 |
36 | #define EOF -1 |
36 | #define EOF -1 |
37 | 37 | ||
38 | extern FILE* fopen(const char* filename, const char *mode); |
38 | extern FILE* fopen(const char* filename, const char *mode); |
39 | extern void fclose(FILE* file); |
39 | extern void fclose(FILE* file); |
40 | extern int feof(FILE* file); |
40 | extern int feof(FILE* file); |
41 | extern int fflush(FILE* file); |
41 | extern int fflush(FILE* file); |
42 | extern int fgetc(FILE* file); |
42 | extern int fgetc(FILE* file); |
43 | extern int fgetpos(FILE* file,fpos_t* pos); |
43 | extern int fgetpos(FILE* file,fpos_t* pos); |
44 | extern int fsetpos(FILE* file,const fpos_t* pos); |
44 | extern int fsetpos(FILE* file,const fpos_t* pos); |
45 | extern int fputc(int c,FILE* file); |
45 | extern int fputc(int c,FILE* file); |
46 | extern int fread(void* buffer,int size,int count,FILE* file); |
46 | extern int fread(void* buffer,int size,int count,FILE* file); |
47 | extern int fwrite(void *buffer,int size,int count,FILE* file); |
47 | extern int fwrite(void *buffer,int size,int count,FILE* file); |
48 | extern long ftell(FILE* file); |
48 | extern long ftell(FILE* file); |
49 | #define SEEK_CUR 0 |
49 | #define SEEK_CUR 0 |
50 | #define SEEK_END 1 |
50 | #define SEEK_END 1 |
51 | #define SEEK_SET 2 |
51 | #define SEEK_SET 2 |
52 | extern int fseek(FILE* file,long offset,int origin); |
52 | extern int fseek(FILE* file,long offset,int origin); |
53 | extern void rewind(FILE* file); |
53 | extern void rewind(FILE* file); |
54 | extern int cdecl fprintf(FILE* file, const char* format,...); |
54 | extern int cdecl fprintf(FILE* file, const char* format,...); |
55 | extern int fscanf(FILE* file,const char* format,...); |
55 | extern int fscanf(FILE* file,const char* format,...); |
56 | extern int ungetc(int c,FILE* file); |
56 | extern int ungetc(int c,FILE* file); |
57 | 57 | ||
58 | extern int cdecl printf(const char *format,...); |
58 | extern int cdecl printf(const char *format,...); |
59 | 59 | ||
60 | extern int vsnprintf(char *dest, size_t size,const char *format,va_list ap); |
60 | extern int vsnprintf(char *dest, size_t size,const char *format,va_list ap); |
61 | extern int cdecl snprintf(char *dest, size_t size, const char *format,...); |
61 | extern int cdecl snprintf(char *dest, size_t size, const char *format,...); |
62 | extern int cdecl sprintf(char *dest,const char *format,...); |
62 | extern int cdecl sprintf(char *dest,const char *format,...); |
63 | 63 | ||
64 | #define getc(a) fgetc(a) |
64 | #define getc(a) fgetc(a) |
65 | char * fgets (char * str, int num, FILE * stream); |
65 | char * fgets (char * str, int num, FILE * stream); |
66 | int putchar (int ch); |
66 | int putchar (int ch); |
67 | int getchar (void); |
67 | int getchar (void); |
68 | int puts (const char * str); |
68 | int puts (const char * str); |
69 | char * gets (char * str); |
69 | char * gets (char * str); |
70 | 70 | ||
71 | typedef int (*virtual_getc)(void *sp, const void *obj); |
71 | typedef int (*virtual_getc)(void *sp, const void *obj); |
72 | typedef void (*virtual_ungetc)(void *sp, int c, const void *obj); |
72 | typedef void (*virtual_ungetc)(void *sp, int c, const void *obj); |
73 | int format_scan(const void *src, const char *fmt, va_list argp, virtual_getc vgetc, virtual_ungetc vungetc); |
73 | int format_scan(const void *src, const char *fmt, va_list argp, virtual_getc vgetc, virtual_ungetc vungetc); |
- | 74 | int vscanf ( const char * format, va_list arg ); |
|
- | 75 | int scanf ( const char * format, ...); |
|
- | 76 | int vsscanf ( const char * s, const char * format, va_list arg ); |
|
- | 77 | int sscanf ( const char * s, const char * format, ...); |
|
- | 78 | int vfscanf ( FILE * stream, const char * format, va_list arg ); |
|
- | 79 | ||
- | 80 | ||
74 | 81 | ||
75 | #endif |
82 | #endif |