[BACK]Return to stdio.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / include

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/include/stdio.h between version 1.1.1.1 and 1.24

version 1.1.1.1, 1993/03/21 09:45:37 version 1.24, 1998/07/27 09:58:49
Line 1 
Line 1 
   /*      $NetBSD$        */
   
 /*-  /*-
  * Copyright (c) 1990 The Regents of the University of California.   * Copyright (c) 1990, 1993
  * All rights reserved.   *      The Regents of the University of California.  All rights reserved.
  *   *
  * This code is derived from software contributed to Berkeley by   * This code is derived from software contributed to Berkeley by
  * Chris Torek.   * Chris Torek.
Line 33 
Line 35 
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.   * SUCH DAMAGE.
  *   *
  *      @(#)stdio.h     5.17 (Berkeley) 6/3/91   *      @(#)stdio.h     8.5 (Berkeley) 4/29/95
  */   */
   
 #ifndef _STDIO_H_  #ifndef _STDIO_H_
 #define _STDIO_H_  #define _STDIO_H_
   
   #if !defined(_ANSI_SOURCE) && !defined(__STRICT_ANSI__)
   #include <sys/types.h>
   #endif
   
 #include <sys/cdefs.h>  #include <sys/cdefs.h>
   #include <sys/featuretest.h>
   
 #include <machine/ansi.h>  #include <machine/ansi.h>
 #ifdef  _SIZE_T_  #ifdef  _BSD_SIZE_T_
 typedef _SIZE_T_        size_t;  typedef _BSD_SIZE_T_    size_t;
 #undef  _SIZE_T_  #undef  _BSD_SIZE_T_
 #endif  #endif
   
 #ifndef NULL  #ifndef NULL
 #define NULL    0  #define NULL    0
 #endif  #endif
   
 typedef long fpos_t;            /* Must match off_t <sys/types.h> */  /*
    * This is fairly grotesque, but pure ANSI code must not inspect the
    * innards of an fpos_t anyway.  The library internally uses off_t,
    * which we assume is exactly as big as eight chars.
    */
   #if !defined(_ANSI_SOURCE) && !defined(__STRICT_ANSI__)
   typedef off_t fpos_t;
   #else
   typedef struct __sfpos {
           long long _pos;                 /* XXX must be the same as off_t */
   } fpos_t;
   #endif
   
 #define _FSTDIO                 /* Define for new stdio with functions. */  #define _FSTDIO                 /* Define for new stdio with functions. */
   
Line 90  struct __sbuf {
Line 108  struct __sbuf {
  * that does not match the previous one in _bf.  When this happens,   * that does not match the previous one in _bf.  When this happens,
  * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff   * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
  * _ub._base!=NULL) and _up and _ur save the current values of _p and _r.   * _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
    *
    * NB: see WARNING above before changing the layout of this structure!
  */   */
 typedef struct __sFILE {  typedef struct __sFILE {
         unsigned char *_p;      /* current position in (some) buffer */          unsigned char *_p;      /* current position in (some) buffer */
Line 116  typedef struct __sFILE {
Line 136  typedef struct __sFILE {
         unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */          unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */
         unsigned char _nbuf[1]; /* guarantee a getc() buffer */          unsigned char _nbuf[1]; /* guarantee a getc() buffer */
   
         /* separate buffer for fgetline() when line crosses buffer boundary */          /* separate buffer for fgetln() when line crosses buffer boundary */
         struct  __sbuf _lb;     /* buffer for fgetline() */          struct  __sbuf _lb;     /* buffer for fgetln() */
   
         /* Unix stdio files get aligned to block boundaries on fseek() */          /* Unix stdio files get aligned to block boundaries on fseek() */
         int     _blksize;       /* stat.st_blksize (may be != _bf._size) */          int     _blksize;       /* stat.st_blksize (may be != _bf._size) */
         int     _offset;        /* current lseek offset */          fpos_t  _offset;        /* current lseek offset */
 } FILE;  } FILE;
   
 __BEGIN_DECLS  __BEGIN_DECLS
Line 142  __END_DECLS
Line 162  __END_DECLS
 #define __SOPT  0x0400          /* do fseek() optimisation */  #define __SOPT  0x0400          /* do fseek() optimisation */
 #define __SNPT  0x0800          /* do not do fseek() optimisation */  #define __SNPT  0x0800          /* do not do fseek() optimisation */
 #define __SOFF  0x1000          /* set iff _offset is in fact correct */  #define __SOFF  0x1000          /* set iff _offset is in fact correct */
 #define __SMOD  0x2000          /* true => fgetline modified _p text */  #define __SMOD  0x2000          /* true => fgetln modified _p text */
   
 /*  /*
  * The following three definitions are for ANSI C, which took them   * The following three definitions are for ANSI C, which took them
Line 161  __END_DECLS
Line 181  __END_DECLS
 #define EOF     (-1)  #define EOF     (-1)
   
 /*  /*
  * FOPEN_MAX is a minimum maximum, and should be the number of descriptors   * FOPEN_MAX is a minimum maximum, and is the number of streams that
  * that the kernel can provide without allocation of a resource that can   * stdio can provide without attempting to allocate further resources
  * fail without the process sleeping.  Do not use this for anything.   * (which could fail).  Do not use this for anything.
  */   */
                                   /* must be == _POSIX_STREAM_MAX <limits.h> */
 #define FOPEN_MAX       20      /* must be <= OPEN_MAX <sys/syslimits.h> */  #define FOPEN_MAX       20      /* must be <= OPEN_MAX <sys/syslimits.h> */
 #define FILENAME_MAX    1024    /* must be <= PATH_MAX <sys/syslimits.h> */  #define FILENAME_MAX    1024    /* must be <= PATH_MAX <sys/syslimits.h> */
   
Line 175  __END_DECLS
Line 196  __END_DECLS
 #define L_tmpnam        1024    /* XXX must be == PATH_MAX */  #define L_tmpnam        1024    /* XXX must be == PATH_MAX */
 #define TMP_MAX         308915776  #define TMP_MAX         308915776
   
   /* Always ensure that these are consistent with <fcntl.h> and <unistd.h>! */
 #ifndef SEEK_SET  #ifndef SEEK_SET
 #define SEEK_SET        0       /* set file offset to offset */  #define SEEK_SET        0       /* set file offset to offset */
 #endif  #endif
Line 200  int  ferror __P((FILE *));
Line 222  int  ferror __P((FILE *));
 int      fflush __P((FILE *));  int      fflush __P((FILE *));
 int      fgetc __P((FILE *));  int      fgetc __P((FILE *));
 int      fgetpos __P((FILE *, fpos_t *));  int      fgetpos __P((FILE *, fpos_t *));
 char    *fgets __P((char *, size_t, FILE *));  char    *fgets __P((char *, int, FILE *));
 FILE    *fopen __P((const char *, const char *));  FILE    *fopen __P((const char *, const char *));
 int      fprintf __P((FILE *, const char *, ...));  int      fprintf __P((FILE *, const char *, ...));
 int      fputc __P((int, FILE *));  int      fputc __P((int, FILE *));
 int      fputs __P((const char *, FILE *));  int      fputs __P((const char *, FILE *));
 int      fread __P((void *, size_t, size_t, FILE *));  size_t   fread __P((void *, size_t, size_t, FILE *));
 FILE    *freopen __P((const char *, const char *, FILE *));  FILE    *freopen __P((const char *, const char *, FILE *));
 int      fscanf __P((FILE *, const char *, ...));  int      fscanf __P((FILE *, const char *, ...));
 int      fseek __P((FILE *, long, int));  int      fseek __P((FILE *, long, int));
 int      fsetpos __P((FILE *, const fpos_t *));  int      fsetpos __P((FILE *, const fpos_t *));
 long     ftell __P((const FILE *));  long     ftell __P((FILE *));
 int      fwrite __P((const void *, size_t, size_t, FILE *));  size_t   fwrite __P((const void *, size_t, size_t, FILE *));
 int      getc __P((FILE *));  int      getc __P((FILE *));
 int      getchar __P((void));  int      getchar __P((void));
 char    *gets __P((char *));  
 #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)  
 extern int sys_nerr;                    /* perror(3) external variables */  
 extern char *sys_errlist[];  
 #endif  
 void     perror __P((const char *));  void     perror __P((const char *));
 int      printf __P((const char *, ...));  int      printf __P((const char *, ...));
 int      putc __P((int, FILE *));  int      putc __P((int, FILE *));
 int      putchar __P((int));  int      putchar __P((int));
 int      puts __P((const char *));  int      puts __P((const char *));
 int      remove __P((const char *));  int      remove __P((const char *));
 int      rename  __P((const char *, const char *));  
 void     rewind __P((FILE *));  void     rewind __P((FILE *));
 int      scanf __P((const char *, ...));  int      scanf __P((const char *, ...));
 void     setbuf __P((FILE *, char *));  void     setbuf __P((FILE *, char *));
 int      setvbuf __P((FILE *, char *, int, size_t));  int      setvbuf __P((FILE *, char *, int, size_t));
 int      sprintf __P((char *, const char *, ...));  int      sscanf __P((const char *, const char *, ...));
 int      sscanf __P((char *, const char *, ...));  
 FILE    *tmpfile __P((void));  FILE    *tmpfile __P((void));
 char    *tmpnam __P((char *));  char    *tmpnam __P((char *));
 int      ungetc __P((int, FILE *));  int      ungetc __P((int, FILE *));
 int      vfprintf __P((FILE *, const char *, _VA_LIST_));  int      vfprintf __P((FILE *, const char *, _BSD_VA_LIST_));
 int      vprintf __P((const char *, _VA_LIST_));  int      vprintf __P((const char *, _BSD_VA_LIST_));
 int      vsprintf __P((char *, const char *, _VA_LIST_));  
   #ifndef __AUDIT__
   char    *gets __P((char *));
   int      sprintf __P((char *, const char *, ...));
   int      vsprintf __P((char *, const char *, _BSD_VA_LIST_));
   #endif
   
   #if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
   int      rename  __P((const char *, const char *)) __RENAME(__posix_rename);
   #else
   int      rename  __P((const char *, const char *));
   #endif
 __END_DECLS  __END_DECLS
   
 /*  /*
  * Functions defined in POSIX 1003.1.   * Functions defined in POSIX 1003.1.
  */   */
 #ifndef _ANSI_SOURCE  #ifndef _ANSI_SOURCE
 #define L_cuserid       9       /* size for cuserid(); UT_NAMESIZE + 1 */  
 #define L_ctermid       1024    /* size for ctermid(); PATH_MAX */  #define L_ctermid       1024    /* size for ctermid(); PATH_MAX */
   #define L_cuserid       9       /* size for cuserid(); UT_NAMESIZE + 1 */
   
 __BEGIN_DECLS  __BEGIN_DECLS
 char    *ctermid __P((char *));  char    *ctermid __P((char *));
   char    *cuserid __P((char *));
 FILE    *fdopen __P((int, const char *));  FILE    *fdopen __P((int, const char *));
 int      fileno __P((FILE *));  int      fileno __P((FILE *));
 __END_DECLS  __END_DECLS
 #endif /* not ANSI */  #endif /* not ANSI */
   
   #if 1   /* _POSIX_C_SOURCE >= 199506L */
   extern void     flockfile __P((FILE *));
   extern int      ftrylockfile __P((FILE *));
   extern void     funlockfile __P((FILE *));
   extern int      getc_unlocked __P((FILE *));
   extern int      getchar_unlocked __P((void));
   extern int      putc_unlocked __P((int, FILE *));
   extern int      putchar_unlocked __P((int));
   #endif
   
 /*  /*
  * Routines that are purely local.   * Functions defined in POSIX 1003.2 and XPGn or later.
  */   */
 #if !defined (_ANSI_SOURCE) && !defined(_POSIX_SOURCE)  #if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) || \
       (_POSIX_C_SOURCE - 0) >= 2 || defined(_XOPEN_SOURCE)
 __BEGIN_DECLS  __BEGIN_DECLS
 char    *fgetline __P((FILE *, size_t *));  
 int      fpurge __P((FILE *));  
 int      getw __P((FILE *));  
 int      pclose __P((FILE *));  int      pclose __P((FILE *));
 FILE    *popen __P((const char *, const char *));  FILE    *popen __P((const char *, const char *));
   __END_DECLS
   #endif
   
   /*
    * Functions defined in XPG4.2.
    */
   #if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) || \
       defined(_XOPEN_SOURCE)
   __BEGIN_DECLS
   int      getw __P((FILE *));
 int      putw __P((int, FILE *));  int      putw __P((int, FILE *));
   int      snprintf __P((char *, size_t, const char *, ...))
                   __attribute__((format (printf, 3, 4)));
   int      vsnprintf __P((char *, size_t, const char *, _BSD_VA_LIST_))
                   __attribute__((format (printf, 3, 0)));
   
   #ifndef __AUDIT__
   char    *tempnam __P((const char *, const char *));
   #endif
   __END_DECLS
   #endif
   
   /*
    * Routines that are purely local.
    */
   #if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \
       !defined(_XOPEN_SOURCE)
   __BEGIN_DECLS
   char    *fgetln __P((FILE *, size_t *));
   int      fpurge __P((FILE *));
 void     setbuffer __P((FILE *, char *, int));  void     setbuffer __P((FILE *, char *, int));
 int      setlinebuf __P((FILE *));  int      setlinebuf __P((FILE *));
 char    *tempnam __P((const char *, const char *));  int      vscanf __P((const char *, _BSD_VA_LIST_))
 int      snprintf __P((char *, size_t, const char *, ...));                  __attribute__((format (scanf, 1, 0)));
 int      vsnprintf __P((char *, size_t, const char *, _VA_LIST_));  int      vsscanf __P((const char *, const char *, _BSD_VA_LIST_))
 int      vscanf __P((const char *, _VA_LIST_));                  __attribute__((format (scanf, 2, 0)));
 int      vsscanf __P((const char *, const char *, _VA_LIST_));  
 __END_DECLS  __END_DECLS
   
 /*  /*
Line 300  __END_DECLS
Line 363  __END_DECLS
  */   */
 __BEGIN_DECLS  __BEGIN_DECLS
 int     __srget __P((FILE *));  int     __srget __P((FILE *));
 int     __svfscanf __P((FILE *, const char *, _VA_LIST_));  int     __svfscanf __P((FILE *, const char *, _BSD_VA_LIST_));
 int     __swbuf __P((int, FILE *));  int     __swbuf __P((int, FILE *));
 __END_DECLS  __END_DECLS
   
Line 310  __END_DECLS
Line 373  __END_DECLS
  */   */
 #define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++))  #define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++))
 #if defined(__GNUC__) && defined(__STDC__)  #if defined(__GNUC__) && defined(__STDC__)
 static inline int __sputc(int _c, FILE *_p) {  static __inline int __sputc(int _c, FILE *_p) {
         if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))          if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
                 return (*_p->_p++ = _c);                  return (*_p->_p++ = _c);
         else          else
Line 335  static inline int __sputc(int _c, FILE *
Line 398  static inline int __sputc(int _c, FILE *
 #define __sclearerr(p)  ((void)((p)->_flags &= ~(__SERR|__SEOF)))  #define __sclearerr(p)  ((void)((p)->_flags &= ~(__SERR|__SEOF)))
 #define __sfileno(p)    ((p)->_file)  #define __sfileno(p)    ((p)->_file)
   
   #ifndef lint
   #ifndef _REENTRANT
 #define feof(p)         __sfeof(p)  #define feof(p)         __sfeof(p)
 #define ferror(p)       __sferror(p)  #define ferror(p)       __sferror(p)
 #define clearerr(p)     __sclearerr(p)  #define clearerr(p)     __sclearerr(p)
   
 #ifndef _ANSI_SOURCE  
 #define fileno(p)       __sfileno(p)  
 #endif  
   
 #ifndef lint  
 #define getc(fp)        __sgetc(fp)  #define getc(fp)        __sgetc(fp)
 #define putc(x, fp)     __sputc(x, fp)  #define putc(x, fp)     __sputc(x, fp)
   #endif /* _REENTRANT */
 #endif /* lint */  #endif /* lint */
   
 #define getchar()       getc(stdin)  #define getchar()       getc(stdin)
 #define putchar(x)      putc(x, stdout)  #define putchar(x)      putc(x, stdout)
   
   #ifndef _ANSI_SOURCE
   #define fileno(p)       __sfileno(p)
   
   #define getc_unlocked(fp)       __sgetc(fp)
   #define putc_unlocked(x, fp)    __sputc(x, fp)
   
   #define getchar_unlocked()      getc_unlocked(stdin)
   #define putchar_unlocked(x)     putc_unlocked(x, stdout)
   #endif /* _ANSI_SOURCE */
   
 #endif /* _STDIO_H_ */  #endif /* _STDIO_H_ */

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.24

CVSweb <webmaster@jp.NetBSD.org>