Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/stdio.h

    r23c8acd9 r1c7f381  
    3737
    3838#include <stdarg.h>
    39 #include <str.h>
    4039#include <io/verify.h>
    41 #include <abi/kio.h>
     40#include <_bits/size_t.h>
     41#include <_bits/wchar_t.h>
    4242
    4343#define EOF  (-1)
     
    5858#define BUFSIZ  4096
    5959
    60 #define DEBUG(fmt, ...) \
    61         { \
    62                 char _buf[256]; \
    63                 int _n = snprintf(_buf, sizeof(_buf), fmt, ##__VA_ARGS__); \
    64                 if (_n > 0) \
    65                         (void) __SYSCALL3(SYS_KIO, KIO_WRITE, (sysarg_t) _buf, str_size(_buf)); \
    66         }
     60/** Forward declaration */
     61struct _IO_FILE;
     62typedef struct _IO_FILE FILE;
     63
     64extern FILE *stdin;
     65extern FILE *stdout;
     66extern FILE *stderr;
     67
     68/* Character and string input functions */
     69extern int fgetc(FILE *);
     70extern char *fgets(char *, int, FILE *);
     71
     72extern int getchar(void);
     73
     74/* Character and string output functions */
     75extern int fputc(wchar_t, FILE *);
     76extern int fputs(const char *, FILE *);
     77
     78extern int putchar(wchar_t);
     79extern int puts(const char *);
     80
     81extern int ungetc(int, FILE *);
     82
     83/* Formatted string output functions */
     84extern int fprintf(FILE *, const char*, ...)
     85    _HELENOS_PRINTF_ATTRIBUTE(2, 3);
     86extern int vfprintf(FILE *, const char *, va_list);
     87
     88extern int printf(const char *, ...)
     89    _HELENOS_PRINTF_ATTRIBUTE(1, 2);
     90extern int vprintf(const char *, va_list);
     91
     92extern int snprintf(char *, size_t , const char *, ...)
     93    _HELENOS_PRINTF_ATTRIBUTE(3, 4);
     94extern int vasprintf(char **, const char *, va_list);
     95extern int asprintf(char **, const char *, ...)
     96    _HELENOS_PRINTF_ATTRIBUTE(2, 3);
     97extern int vsnprintf(char *, size_t, const char *, va_list);
     98
     99/* File stream functions */
     100extern FILE *fopen(const char *, const char *);
     101extern FILE *freopen(const char *, const char *, FILE *);
     102extern int fclose(FILE *);
     103
     104extern size_t fread(void *, size_t, size_t, FILE *);
     105extern size_t fwrite(const void *, size_t, size_t, FILE *);
     106
     107extern int fseek(FILE *, long, int);
     108extern void rewind(FILE *);
     109extern long ftell(FILE *);
     110extern int feof(FILE *);
     111
     112extern int fflush(FILE *);
     113extern int ferror(FILE *);
     114extern void clearerr(FILE *);
     115
     116extern void setvbuf(FILE *, void *, int, size_t);
     117extern void setbuf(FILE *, void *);
     118
     119/* Misc file functions */
     120extern int rename(const char *, const char *);
     121extern int remove(const char *);
     122
     123#ifndef _HELENOS_SOURCE
     124#define _IONBF 0
     125#define _IOLBF 1
     126#define _IOFBF 2
     127#endif
     128
     129#ifdef _HELENOS_SOURCE
     130
     131/* Nonstandard extensions. */
    67132
    68133enum _buffer_type {
     
    86151};
    87152
    88 /** Forward declaration */
    89 struct _IO_FILE;
    90 typedef struct _IO_FILE FILE;
    91 
    92 extern FILE *stdin;
    93 extern FILE *stdout;
    94 extern FILE *stderr;
    95 
    96 /* Character and string input functions */
    97 extern int fgetc(FILE *);
    98 extern char *fgets(char *, int, FILE *);
    99 
    100 extern int getchar(void);
     153extern int vprintf_size(const char *, va_list);
     154extern int printf_size(const char *, ...)
     155    _HELENOS_PRINTF_ATTRIBUTE(1, 2);
     156extern FILE *fdopen(int, const char *);
     157extern int fileno(FILE *);
    101158extern char *gets(char *, size_t);
    102159
    103 /* Character and string output functions */
    104 extern int fputc(wchar_t, FILE *);
    105 extern int fputs(const char *, FILE *);
     160#include <offset.h>
    106161
    107 extern int putchar(wchar_t);
    108 extern int puts(const char *);
     162extern int fseek64(FILE *, off64_t, int);
     163extern off64_t ftell64(FILE *);
    109164
    110 extern int ungetc(int, FILE *);
     165#endif
    111166
    112 /* Formatted string output functions */
    113 extern int fprintf(FILE *, const char*, ...)
    114     PRINTF_ATTRIBUTE(2, 3);
    115 extern int vfprintf(FILE *, const char *, va_list);
    116 
    117 extern int printf(const char *, ...)
    118     PRINTF_ATTRIBUTE(1, 2);
    119 extern int vprintf(const char *, va_list);
    120 
    121 extern int snprintf(char *, size_t , const char *, ...)
    122     PRINTF_ATTRIBUTE(3, 4);
    123 extern int vasprintf(char **, const char *, va_list);
    124 extern int asprintf(char **, const char *, ...)
    125     PRINTF_ATTRIBUTE(2, 3);
    126 extern int vsnprintf(char *, size_t, const char *, va_list);
    127 
    128 extern int printf_size(const char *, ...)
    129     PRINTF_ATTRIBUTE(1, 2);
    130 extern int vprintf_size(const char *, va_list);
    131 
    132 /* File stream functions */
    133 extern FILE *fopen(const char *, const char *);
    134 extern FILE *fdopen(int, const char *);
    135 extern FILE *freopen(const char *, const char *, FILE *);
    136 extern int fclose(FILE *);
    137 
    138 extern size_t fread(void *, size_t, size_t, FILE *);
    139 extern size_t fwrite(const void *, size_t, size_t, FILE *);
    140 
    141 extern int fseek(FILE *, long, int);
    142 extern void rewind(FILE *);
    143 extern long ftell(FILE *);
    144 extern int feof(FILE *);
    145 extern int fileno(FILE *);
    146 
    147 extern int fflush(FILE *);
    148 extern int ferror(FILE *);
    149 extern void clearerr(FILE *);
    150 
    151 extern void setvbuf(FILE *, void *, int, size_t);
    152 extern void setbuf(FILE *, void *);
    153 
    154 /* Misc file functions */
    155 extern int rename(const char *, const char *);
    156 extern int remove(const char *);
    157167
    158168#endif
Note: See TracChangeset for help on using the changeset viewer.