stdio.h
上传用户:hepax88
上传日期:2007-01-03
资源大小:1101k
文件大小:4k
源码类别:

TCP/IP协议栈

开发平台:

Visual C++

  1. #ifndef _STDIO_H
  2. #define _STDIO_H
  3. #ifndef _GLOBAL_H
  4. #include "global.h"
  5. #endif
  6. #define EOL_LEN 3
  7. #define _fd_type(fd) (((fd) >> 13) & 3)
  8. #define _fd_seq(fd) ((fd) & 8191)
  9. #define _mk_fd(fd,type) ((fd) | ((type) << 13))
  10. struct _file{
  11. unsigned cookie; /* Detect bogus file pointers */
  12. #define _COOKIE 0xdead
  13. int refcnt;
  14. struct _file *prev;
  15. struct _file *next;
  16. int fd; /* File, socket or asy descriptor */
  17. long offset; /* Seek offset, type == _FL_FILE only */
  18. enum {
  19. _FL_FILE, /* Associated with file */
  20. _FL_SOCK, /* Associated with network socket */
  21. _FL_ASY, /* Asynch port */
  22. _FL_DISPLAY, /* Associated with display driver */
  23. _FL_PIPE /* Pipe mode */
  24. } type;
  25. enum {
  26. _IOFBF=1, /* Full buffering */
  27. _IOLBF, /* Line buffering */
  28. _IONBF /* No buffering */
  29. } bufmode; /* Output buffering mode */
  30. struct {
  31. unsigned int err:1; /* Error on stream */
  32. unsigned int eof:1; /* EOF seen */
  33. unsigned int ascii:1; /* Ascii (newline translate) mode */
  34. unsigned int append:1; /* Always seek to end before writing */
  35. unsigned int tmp:1; /* Delete on close */
  36. unsigned int partread:1;/* Allow partial reads from fread() */
  37. } flags;
  38. struct mbuf *obuf; /* Output buffer */
  39. struct mbuf *ibuf; /* Input buffer */
  40. char eol[EOL_LEN]; /* Text mode end-of-line sequence, if any */
  41. int bufsize; /* Size of buffer to use */
  42. void *ptr; /* File name or display pointer */
  43. };
  44. typedef struct _file FILE;
  45. #ifndef _SIZE_T
  46. #define _SIZE_T
  47. typedef unsigned size_t;
  48. #endif
  49. #undef NULL
  50. #define NULL 0
  51. #define BUFSIZ 2048
  52. #define EOF (-1)
  53. #define L_tmpnam 13
  54. #define SEEK_SET 0
  55. #define SEEK_CUR 1
  56. #define SEEK_END 2
  57. #ifndef _PROC_H
  58. #include "proc.h"
  59. #endif
  60. #define stdout Curproc->output
  61. #define stdin Curproc->input
  62. #define stderr Curproc->output
  63. #define STREAM_BINARY 0
  64. #define STREAM_ASCII 1
  65. #define FULL_READ 0
  66. #define PART_READ 1
  67. FILE *asyopen(char *name,char *mode);
  68. int close(int fd);
  69. FILE *displayopen(char *mode,int noscrol,int sfsize);
  70. int fblock(FILE *fp,int mode);
  71. int fclose(FILE *fp);
  72. void fcloseall(void);
  73. FILE *fdopen(int handle,char *mode);
  74. FILE *fdup(FILE *fp);
  75. int fflush(FILE *fp);
  76. int fgetc(FILE *fp);
  77. int _fgetc(FILE *fp);
  78. char *fgets(char *buf,int len,FILE *fp);
  79. void flushall(void);
  80. int fmode (FILE *fp,int mode);
  81. char *fpname(FILE *fp);
  82. int fprintf(FILE *fp,char *fmt,...);
  83. int fputc(int c,FILE *fp);
  84. int fputs(char *buf,FILE *fp);
  85. size_t fread(void *ptr,size_t size,size_t n,FILE *fp);
  86. FILE *freopen(char *name,char *mode,FILE *fp);
  87. int fseek(FILE *fp,long offset,int whence);
  88. long ftell(FILE *fp);
  89. size_t fwrite(void *ptr,size_t size,size_t n,FILE *fp);
  90. char *gets(char *s);
  91. void perror(const char *s);
  92. FILE *pipeopen(void);
  93. int printf(char *fmt,...);
  94. int puts(char *s);
  95. int rename(const char *,const char *);
  96. void setbuf(FILE *fp,char *buf);
  97. int seteol(FILE *fp,char *seq);
  98. int setvbuf(FILE *fp,char *buf,int type,int size);
  99. int sprintf(char *,char *, ...);
  100. int sscanf(char *,char *,...); /* From regular library */
  101. FILE *tmpfile(void);
  102. char *tmpnam(char *); /* From regular library */
  103. int ungetc(int c,FILE *fp);
  104. int unlink(const char *); /* From regular library */
  105. int vfprintf(FILE *fp,char *fmt, void *args);
  106. int vprintf(char *fmt, void *args);
  107. int vsprintf(char *,char *,void *);
  108. extern int _clrtmp; /* Flag controlling wipe of temporary files on close */
  109. /* Macros */
  110. #define feof(fp) ((fp)->flags.eof)
  111. #define ferror(fp) ((fp)->flags.err)
  112. #define fileno(fp) ((fp) != NULL ? (fp)->fd : -1)
  113. #define fopen(s,m) (freopen((s),(m),NULL))
  114. #define putc(c,fp) (fputc((c),(fp)))
  115. #define getc(fp) (fgetc((fp)))
  116. #define getchar() (getc(stdin))
  117. #define clearerr(fp) ((fp)->flags.eof = (fp)->flags.err = 0)
  118. #define rewind(fp) ((void)fseek((fp),0L,SEEK_SET),clearerr((fp)))
  119. #define putchar(c) (putc((c),stdout))
  120. #endif /* _STDIO_H */