stream.h

Go to the documentation of this file.
00001 /*
00002 ** stream.h for lseos in lseos-lib/libc/stream
00003 ** 
00004 ** Copyright(c)1999 Sebastien Carlier
00005 ** Login   <vianney@epita.fr>
00006 ** 
00007 ** Started on  Tue Nov 30 16:36:41 2004 Vianney Rancurel
00008 ** Last update Tue Nov 30 16:39:32 2004 Vianney Rancurel
00009 */
00010 #ifndef __STREAM_STREAM_H__
00011 #define __STREAM_STREAM_H__     1
00012 #include <libc.h>
00013 
00014 # ifndef EOF
00015 #  define EOF (-1)
00016 # endif
00017 
00018 # define BUFFER_SIZE    512
00019 
00020 # define MODE_READ      1
00021 # define MODE_WRITE     2
00022 # define MODE_RDWR      3
00023 # define MODE_APPEND    4
00024 # define MODE_CREATE    8
00025 # define MODE_TRUNC     16
00026 # define MODE_EOF       32
00027 
00028 #define TEST_READ(f) (0 != (MODE_READ & stream->mode))
00029 #define TEST_WRITE(f) (0 != (MODE_WRITE & stream->mode))
00030 #define TEST_WRITING(f) (~0 == (f)->offset)
00031 #define TEST_READING(f) ((f)->offset < (f)->size)
00032 #define TEST_APPEND(f) (0 != (MODE_APPEND & (f)->mode))
00033 #define TEST_EOF(f) (0 != (MODE_EOF & (f)->mode))
00034 
00035 typedef struct  s_stream
00036 {
00037   int           fd;
00038   u_int         mode;
00039   u_char        buffer[BUFFER_SIZE];
00040   u_int         offset;
00041   u_int         size;
00042 }               t_stream;
00043 
00044 /* PROTO fclose.c   fgetc.c    fopen.c    fputs.c    fsetpos.c  fwrite.c fflush.c   fgetpos.c  fput.c     fread.c    ftell.c    rewind.c fget.c     fgets.c    fputc.c    fseek.c    fungetc.c */
00045 /* fclose.c */
00046 int stream_fclose(t_stream *stream);
00047 /* fgetc.c */
00048 int stream_fgetc(t_stream *stream);
00049 /* fopen.c */
00050 t_stream *stream_fopen(char const *path, char const *mode);
00051 /* fputs.c */
00052 int stream_fputs(char *str, t_stream *stream);
00053 /* fsetpos.c */
00054 int stream_fsetpos(t_stream *stream, off_t *pos);
00055 /* fwrite.c */
00056 size_t stream_fwrite(void const *ptr, size_t size, size_t nmemb, t_stream *stream);
00057 /* fflush.c */
00058 int stream_fflush(t_stream *stream);
00059 /* fgetpos.c */
00060 int stream_fgetpos(t_stream *stream, fpos_t *pos);
00061 /* fput.c */
00062 int stream_fput(int c, t_stream *stream);
00063 /* fread.c */
00064 size_t stream_fread(void *ptr, size_t size, size_t nmemb, t_stream *stream);
00065 /* ftell.c */
00066 long stream_ftell(t_stream *stream);
00067 /* rewind.c */
00068 void stream_rewind(t_stream *stream);
00069 /* fget.c */
00070 int stream_fget(t_stream *stream);
00071 /* fgets.c */
00072 char *stream_fgets(char *str, int size, t_stream *stream);
00073 /* fputc.c */
00074 int stream_fputc(int c, t_stream *stream);
00075 /* fseek.c */
00076 int stream_fseek(t_stream *stream, long offset, int whence);
00077 /* fungetc.c */
00078 int stream_fungetc(t_stream *stream, int c);
00079 #endif

Generated on Wed May 24 23:04:17 2006 for LSE/OS by  doxygen 1.4.6