Changeset 2595dab in mainline for uspace/lib/libc/include/stdio.h


Ignore:
Timestamp:
2009-06-03T19:26:28Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d00ae4c
Parents:
ca3ba3a
Message:

I/O subsystem overhaul:

  • add more POSIX-like file and stream functions (with real functionality of stdin, stdout, stderr)
  • cleanup console access methods (now generic to any console-like device)
  • remove unsafe stream functions
  • add special open_node(), fd_node(), fd_phone() (file) and fopen_node(), fnode(), fphone() (stream) functions for HelenOS-specific I/O operations
File:
1 edited

Legend:

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

    rca3ba3a r2595dab  
    3939#include <stdarg.h>
    4040
    41 #define EOF (-1)
    42 
    43 #include <string.h>
    44 #include <io/stream.h>
     41#define EOF  (-1)
    4542
    4643#define DEBUG(fmt, ...) \
    4744{ \
    4845        char buf[256]; \
    49         int n; \
    50         n = snprintf(buf, sizeof(buf), fmt, ##__VA_ARGS__); \
     46        int n = snprintf(buf, sizeof(buf), fmt, ##__VA_ARGS__); \
    5147        if (n > 0) \
    5248                (void) __SYSCALL3(SYS_KLOG, 1, (sysarg_t) buf, str_size(buf)); \
    5349}
    5450
     51#ifndef SEEK_SET
     52        #define SEEK_SET  0
     53        #define SEEK_CUR  1
     54        #define SEEK_END  2
     55#endif
     56
    5557typedef struct {
    5658        /** Underlying file descriptor. */
    5759        int fd;
    58 
     60       
    5961        /** Error indicator. */
    6062        int error;
    61 
     63       
    6264        /** End-of-file indicator. */
    6365        int eof;
     66       
     67        /** Klog indicator */
     68        int klog;
     69       
     70        /** Phone to the file provider */
     71        int phone;
    6472} FILE;
    6573
    66 extern FILE *stdin, *stdout, *stderr;
     74extern FILE stdin_null;
     75extern FILE stdout_klog;
     76
     77extern FILE *stdin;
     78extern FILE *stdout;
     79extern FILE *stderr;
     80
     81/* Character and string input functions */
     82extern int fgetc(FILE *);
     83extern char *fgets(char *, size_t, FILE *);
    6784
    6885extern int getchar(void);
     86extern char *gets(char *, size_t);
    6987
     88/* Character and string output functions */
     89extern int fputc(wchar_t, FILE *);
     90extern int fputs(const char *, FILE *);
     91
     92extern int putchar(wchar_t);
    7093extern int puts(const char *);
    71 extern int putchar(int);
    72 extern int fflush(FILE *);
     94
     95/* Formatted string output functions */
     96extern int fprintf(FILE *, const char*, ...);
     97extern int vfprintf(FILE *, const char *, va_list);
    7398
    7499extern int printf(const char *, ...);
     100extern int vprintf(const char *, va_list);
     101
     102extern int snprintf(char *, size_t , const char *, ...);
    75103extern int asprintf(char **, const char *, ...);
    76 extern int sprintf(char *, const char *, ...);
    77 extern int snprintf(char *, size_t , const char *, ...);
    78 
    79 extern int vprintf(const char *, va_list);
    80 extern int vsprintf(char *, const char *, va_list);
    81104extern int vsnprintf(char *, size_t, const char *, va_list);
    82105
    83 extern int rename(const char *, const char *);
    84 
     106/* File stream functions */
    85107extern FILE *fopen(const char *, const char *);
    86108extern int fclose(FILE *);
     109
    87110extern size_t fread(void *, size_t, size_t, FILE *);
    88111extern size_t fwrite(const void *, size_t, size_t, FILE *);
     112
     113extern int fseek(FILE *, long, int);
     114extern int ftell(FILE *);
    89115extern int feof(FILE *);
     116
     117extern int fflush(FILE *);
    90118extern int ferror(FILE *);
    91119extern void clearerr(FILE *);
    92120
    93 extern int fgetc(FILE *);
    94 extern int fputc(int, FILE *);
    95 extern int fputs(const char *, FILE *);
    96 
    97 extern int fprintf(FILE *, const char *, ...);
    98 extern int vfprintf(FILE *, const char *, va_list);
    99 
    100 #define getc fgetc
    101 #define putc fputc
    102 
    103 extern int fseek(FILE *, long, int);
    104 
    105 #ifndef SEEK_SET
    106         #define SEEK_SET        0
    107         #define SEEK_CUR        1
    108         #define SEEK_END        2
    109 #endif
     121/* Misc file functions */
     122extern int rename(const char *, const char *);
    110123
    111124#endif
Note: See TracChangeset for help on using the changeset viewer.