[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.20 and 1.79.2.3

version 1.20, 1998/02/02 21:07:52 version 1.79.2.3, 2014/05/22 11:36:35
Line 15 
Line 15 
  * 2. Redistributions in binary form must reproduce the above copyright   * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the   *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.   *    documentation and/or other materials provided with the distribution.
  * 3. All advertising materials mentioning features or use of this software   * 3. Neither the name of the University nor the names of its contributors
  *    must display the following acknowledgement:  
  *      This product includes software developed by the University of  
  *      California, Berkeley and its contributors.  
  * 4. Neither the name of the University nor the names of its contributors  
  *    may be used to endorse or promote products derived from this software   *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.   *    without specific prior written permission.
  *   *
Line 41 
Line 37 
 #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 <sys/ansi.h>
   
 #include <machine/ansi.h>  
 #ifdef  _BSD_SIZE_T_  #ifdef  _BSD_SIZE_T_
 typedef _BSD_SIZE_T_    size_t;  typedef _BSD_SIZE_T_    size_t;
 #undef  _BSD_SIZE_T_  #undef  _BSD_SIZE_T_
 #endif  #endif
   #ifdef  _BSD_SSIZE_T_
   typedef _BSD_SSIZE_T_   ssize_t;
   #undef  _BSD_SSIZE_T_
   #endif
   
 #ifndef NULL  #if defined(_POSIX_C_SOURCE)
 #define NULL    0  #ifndef __VA_LIST_DECLARED
   typedef __va_list va_list;
   #define __VA_LIST_DECLARED
   #endif
 #endif  #endif
   
   #include <sys/null.h>
   
 /*  /*
  * This is fairly grotesque, but pure ANSI code must not inspect the   * This is fairly grotesque, but pure ANSI code must not inspect the
  * innards of an fpos_t anyway.  The library internally uses off_t,   * innards of an fpos_t anyway.  The library internally uses off_t,
  * which we assume is exactly as big as eight chars.   * 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 {  typedef struct __sfpos {
         long long _pos;                 /* XXX must be the same as off_t */          __off_t _pos;
           __mbstate_t _mbstate_in, _mbstate_out;
 } fpos_t;  } fpos_t;
 #endif  
   
 #define _FSTDIO                 /* Define for new stdio with functions. */  #define _FSTDIO                 /* Define for new stdio with functions. */
   
Line 114  typedef struct __sFILE {
Line 113  typedef struct __sFILE {
         unsigned char *_p;      /* current position in (some) buffer */          unsigned char *_p;      /* current position in (some) buffer */
         int     _r;             /* read space left for getc() */          int     _r;             /* read space left for getc() */
         int     _w;             /* write space left for putc() */          int     _w;             /* write space left for putc() */
         short   _flags;         /* flags, below; this FILE is free if 0 */          unsigned short _flags;  /* flags, below; this FILE is free if 0 */
         short   _file;          /* fileno, if Unix descriptor, else -1 */          short   _file;          /* fileno, if Unix descriptor, else -1 */
         struct  __sbuf _bf;     /* the buffer (at least 1 byte, if !NULL) */          struct  __sbuf _bf;     /* the buffer (at least 1 byte, if !NULL) */
         int     _lbfsize;       /* 0 or -_bf._size, for inline putc */          int     _lbfsize;       /* 0 or -_bf._size, for inline putc */
   
         /* operations */          /* operations */
         void    *_cookie;       /* cookie passed to io functions */          void    *_cookie;       /* cookie passed to io functions */
         int     (*_close) __P((void *));          int     (*_close)(void *);
         int     (*_read)  __P((void *, char *, int));          ssize_t (*_read) (void *, void *, size_t);
         fpos_t  (*_seek)  __P((void *, fpos_t, int));          __off_t (*_seek) (void *, __off_t, int);
         int     (*_write) __P((void *, const char *, int));          ssize_t (*_write)(void *, const void *, size_t);
   
           /* file extension */
           struct  __sbuf _ext;
   
         /* separate buffer for long sequences of ungetc() */          /* separate buffer for long sequences of ungetc() */
         struct  __sbuf _ub;     /* ungetc buffer */  
         unsigned char *_up;     /* saved _p when _p is doing ungetc data */          unsigned char *_up;     /* saved _p when _p is doing ungetc data */
         int     _ur;            /* saved _r when _r is counting ungetc data */          int     _ur;            /* saved _r when _r is counting ungetc data */
   
Line 135  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 fgetln() when line crosses buffer boundary */          int     (*_flush)(void *);
         struct  __sbuf _lb;     /* buffer for fgetln() */          /* Formerly used by fgetln/fgetwln; kept for binary compatibility */
           char    _lb_unused[sizeof(struct __sbuf) - sizeof(int (*)(void *))];
   
         /* 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) */
         fpos_t  _offset;        /* current lseek offset */          __off_t _offset;        /* current lseek offset */
 } FILE;  } FILE;
   
 __BEGIN_DECLS  __BEGIN_DECLS
 extern FILE __sF[];  extern FILE __sF[3];
 __END_DECLS  __END_DECLS
   
 #define __SLBF  0x0001          /* line buffered */  #define __SLBF  0x0001          /* line buffered */
Line 158  __END_DECLS
Line 160  __END_DECLS
 #define __SMBF  0x0080          /* _buf is from malloc */  #define __SMBF  0x0080          /* _buf is from malloc */
 #define __SAPP  0x0100          /* fdopen()ed in append mode */  #define __SAPP  0x0100          /* fdopen()ed in append mode */
 #define __SSTR  0x0200          /* this is an sprintf/snprintf string */  #define __SSTR  0x0200          /* this is an sprintf/snprintf string */
 #define __SOPT  0x0400          /* do fseek() optimisation */  #define __SOPT  0x0400          /* do fseek() optimization */
 #define __SNPT  0x0800          /* do not do fseek() optimisation */  #define __SNPT  0x0800          /* do not do fseek() optimization */
 #define __SOFF  0x1000          /* set iff _offset is in fact correct */  #define __SOFF  0x1000          /* set iff _offset is in fact correct */
 #define __SMOD  0x2000          /* true => fgetln modified _p text */  #define __SMOD  0x2000          /* true => fgetln modified _p text */
   #define __SALC  0x4000          /* allocate string space dynamically */
   
 /*  /*
  * The following three definitions are for ANSI C, which took them   * The following three definitions are for ANSI C, which took them
Line 189  __END_DECLS
Line 192  __END_DECLS
 #define FILENAME_MAX    1024    /* must be <= PATH_MAX <sys/syslimits.h> */  #define FILENAME_MAX    1024    /* must be <= PATH_MAX <sys/syslimits.h> */
   
 /* System V/ANSI C; this is the wrong way to do this, do *not* use these. */  /* System V/ANSI C; this is the wrong way to do this, do *not* use these. */
 #ifndef _ANSI_SOURCE  #if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE)
 #define P_tmpdir        "/var/tmp/"  #define P_tmpdir        "/var/tmp/"
 #endif  #endif
 #define L_tmpnam        1024    /* XXX must be == PATH_MAX */  #define L_tmpnam        1024    /* XXX must be == PATH_MAX */
 #define TMP_MAX         308915776  /* Always ensure that this is consistent with <limits.h> */
   #ifndef TMP_MAX
   #define TMP_MAX                 308915776       /* Legacy */
   #endif
   
   /* 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 213  __END_DECLS
Line 220  __END_DECLS
  * Functions defined in ANSI C standard.   * Functions defined in ANSI C standard.
  */   */
 __BEGIN_DECLS  __BEGIN_DECLS
 void     clearerr __P((FILE *));  void     clearerr(FILE *);
 int      fclose __P((FILE *));  int      fclose(FILE *);
 int      feof __P((FILE *));  int      feof(FILE *);
 int      ferror __P((FILE *));  int      ferror(FILE *);
 int      fflush __P((FILE *));  int      fflush(FILE *);
 int      fgetc __P((FILE *));  int      fgetc(FILE *);
 int      fgetpos __P((FILE *, fpos_t *));  char    *fgets(char * __restrict, int, FILE * __restrict);
 char    *fgets __P((char *, int, FILE *));  FILE    *fopen(const char * __restrict , const char * __restrict);
 FILE    *fopen __P((const char *, const char *));  int      fprintf(FILE * __restrict, const char * __restrict, ...)
 int      fprintf __P((FILE *, const char *, ...));                  __printflike(2, 3);
 int      fputc __P((int, FILE *));  int      fputc(int, FILE *);
 int      fputs __P((const char *, FILE *));  int      fputs(const char * __restrict, FILE * __restrict);
 size_t   fread __P((void *, size_t, size_t, FILE *));  size_t   fread(void * __restrict, size_t, size_t, FILE * __restrict);
 FILE    *freopen __P((const char *, const char *, FILE *));  FILE    *freopen(const char * __restrict, const char * __restrict,
 int      fscanf __P((FILE *, const char *, ...));              FILE * __restrict);
 int      fseek __P((FILE *, long, int));  int      fscanf(FILE * __restrict, const char * __restrict, ...)
 int      fsetpos __P((FILE *, const fpos_t *));                  __scanflike(2, 3);
 long     ftell __P((FILE *));  int      fseek(FILE *, long, int);
 size_t   fwrite __P((const void *, size_t, size_t, FILE *));  long     ftell(FILE *);
 int      getc __P((FILE *));  size_t   fwrite(const void * __restrict, size_t, size_t, FILE * __restrict);
 int      getchar __P((void));  int      getc(FILE *);
 char    *gets __P((char *));  int      getchar(void);
 void     perror __P((const char *));  ssize_t  getdelim(char ** __restrict, size_t * __restrict, int,
 int      printf __P((const char *, ...));              FILE * __restrict);
 int      putc __P((int, FILE *));  ssize_t  getline(char ** __restrict, size_t * __restrict, FILE * __restrict);
 int      putchar __P((int));  void     perror(const char *);
 int      puts __P((const char *));  int      printf(const char * __restrict, ...)
 int      remove __P((const char *));                  __printflike(1, 2);
 int      rename  __P((const char *, const char *));  int      putc(int, FILE *);
 void     rewind __P((FILE *));  int      putchar(int);
 int      scanf __P((const char *, ...));  int      puts(const char *);
 void     setbuf __P((FILE *, char *));  int      remove(const char *);
 int      setvbuf __P((FILE *, char *, int, size_t));  void     rewind(FILE *);
 int      sprintf __P((char *, const char *, ...));  int      scanf(const char * __restrict, ...)
 int      sscanf __P((const char *, const char *, ...));                  __scanflike(1, 2);
 FILE    *tmpfile __P((void));  void     setbuf(FILE * __restrict, char * __restrict);
 char    *tmpnam __P((char *));  int      setvbuf(FILE * __restrict, char * __restrict, int, size_t);
 int      ungetc __P((int, FILE *));  int      sscanf(const char * __restrict, const char * __restrict, ...)
 int      vfprintf __P((FILE *, const char *, _BSD_VA_LIST_));                  __scanflike(2, 3);
 int      vprintf __P((const char *, _BSD_VA_LIST_));  FILE    *tmpfile(void);
 int      vsprintf __P((char *, const char *, _BSD_VA_LIST_));  int      ungetc(int, FILE *);
   int      vfprintf(FILE * __restrict, const char * __restrict, __va_list)
                   __printflike(2, 0);
   int      vprintf(const char * __restrict, __va_list)
                   __printflike(1, 0);
   
   #ifndef __AUDIT__
   char    *gets(char *);
   int      sprintf(char * __restrict, const char * __restrict, ...)
                   __printflike(2, 3);
   char    *tmpnam(char *);
   int      vsprintf(char * __restrict, const char * __restrict,
       __va_list)
                   __printflike(2, 0);
   #endif
   
   #if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
   int      rename (const char *, const char *) __RENAME(__posix_rename);
   #else
   int      rename (const char *, const char *);
   #endif
 __END_DECLS  __END_DECLS
   
   #ifndef __LIBC12_SOURCE__
   int      fgetpos(FILE * __restrict, fpos_t * __restrict) __RENAME(__fgetpos50);
   int      fsetpos(FILE *, const fpos_t *) __RENAME(__fsetpos50);
   #endif
 /*  /*
  * Functions defined in POSIX 1003.1.   * IEEE Std 1003.1-90
  */   */
 #ifndef _ANSI_SOURCE  #if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
       defined(_NETBSD_SOURCE)
 #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 */  #define L_cuserid       9       /* size for cuserid(); UT_NAMESIZE + 1 */
   
 __BEGIN_DECLS  __BEGIN_DECLS
 char    *ctermid __P((char *));  char    *ctermid(char *);
 char    *cuserid __P((char *));  #ifndef __CUSERID_DECLARED
 FILE    *fdopen __P((int, const char *));  #define __CUSERID_DECLARED
 int      fileno __P((FILE *));  /* also declared in unistd.h */
   char    *cuserid(char *);
   #endif /* __CUSERID_DECLARED */
   FILE    *fdopen(int, const char *);
   int      fileno(FILE *);
 __END_DECLS  __END_DECLS
 #endif /* not ANSI */  #endif /* not ANSI */
   
 #if 1   /* _POSIX_C_SOURCE >= 199506L */  /*
 extern void     flockfile __P((FILE *));   * IEEE Std 1003.1c-95, also adopted by X/Open CAE Spec Issue 5 Version 2
 extern int      ftrylockfile __P((FILE *));   */
 extern void     funlockfile __P((FILE *));  #if (_POSIX_C_SOURCE - 0) >= 199506L || (_XOPEN_SOURCE - 0) >= 500 || \
 extern int      getc_unlocked __P((FILE *));      defined(_REENTRANT) || defined(_NETBSD_SOURCE)
 extern int      getchar_unlocked __P((void));  __BEGIN_DECLS
 extern int      putc_unlocked __P((int, FILE *));  void    flockfile(FILE *);
 extern int      putchar_unlocked __P((int));  int     ftrylockfile(FILE *);
   void    funlockfile(FILE *);
   int     getc_unlocked(FILE *);
   int     getchar_unlocked(void);
   int     putc_unlocked(int, FILE *);
   int     putchar_unlocked(int);
   __END_DECLS
   #endif /* _POSIX_C_SOURCE >= 1995056 || _XOPEN_SOURCE >= 500 || ... */
   
   /*
    * Functions defined in POSIX 1003.2 and XPG2 or later.
    */
   #if (_POSIX_C_SOURCE - 0) >= 2 || (_XOPEN_SOURCE - 0) >= 2 || \
       defined(_NETBSD_SOURCE)
   __BEGIN_DECLS
   int      pclose(FILE *);
   FILE    *popen(const char *, const char *);
   __END_DECLS
 #endif  #endif
   
 /*  /*
  * Routines that are purely local.   * Functions defined in ISO XPG4.2, ISO C99, POSIX 1003.1-2001 or later.
    */
   #if ((__STDC_VERSION__ - 0) >= 199901L) || \
       ((_POSIX_C_SOURCE - 0) >= 200112L) || \
       (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
       ((_XOPEN_SOURCE - 0) >= 500) || \
       defined(_ISOC99_SOURCE) || defined(_NETBSD_SOURCE)
   __BEGIN_DECLS
   int      snprintf(char * __restrict, size_t, const char * __restrict, ...)
                   __printflike(3, 4);
   int      vsnprintf(char * __restrict, size_t, const char * __restrict,
               __va_list)
                   __printflike(3, 0);
   __END_DECLS
   #endif
   
   /*
    * Functions defined in XPG4.2.
    */
   #if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE)
   __BEGIN_DECLS
   int      getw(FILE *);
   int      putw(int, FILE *);
   
   #ifndef __AUDIT__
   char    *tempnam(const char *, const char *);
   #endif
   __END_DECLS
   #endif
   
   /*
    * X/Open CAE Specification Issue 5 Version 2
  */   */
 #if !defined (_ANSI_SOURCE) && !defined(_POSIX_SOURCE)  #if (_XOPEN_SOURCE - 0) >= 500 || defined(_LARGEFILE_SOURCE) || \
       defined(_NETBSD_SOURCE)
   #ifndef off_t
   typedef __off_t         off_t;
   #define off_t           __off_t
   #endif /* off_t */
   
 __BEGIN_DECLS  __BEGIN_DECLS
 char    *fgetln __P((FILE *, size_t *));  int      fseeko(FILE *, off_t, int);
 int      fpurge __P((FILE *));  off_t    ftello(FILE *);
 int      getw __P((FILE *));  
 int      pclose __P((FILE *));  
 FILE    *popen __P((const char *, const char *));  
 int      putw __P((int, FILE *));  
 void     setbuffer __P((FILE *, char *, int));  
 int      setlinebuf __P((FILE *));  
 char    *tempnam __P((const char *, const char *));  
 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)));  
 int      vscanf __P((const char *, _BSD_VA_LIST_))  
                 __attribute__((format (scanf, 1, 0)));  
 int      vsscanf __P((const char *, const char *, _BSD_VA_LIST_))  
                 __attribute__((format (scanf, 2, 0)));  
 __END_DECLS  __END_DECLS
   #endif /* _XOPEN_SOURCE >= 500 || _LARGEFILE_SOURCE || _NETBSD_SOURCE */
   
 /*  /*
  * This is a #define because the function is used internally and   * Functions defined in ISO C99.  Still put under _NETBSD_SOURCE due to
  * (unlike vfscanf) the name __svfscanf is guaranteed not to collide   * backward compatible.
  * with a user function when _ANSI_SOURCE or _POSIX_SOURCE is defined.  
  */   */
 #define  vfscanf        __svfscanf  #if defined(_ISOC99_SOURCE) || defined(_NETBSD_SOURCE)
   __BEGIN_DECLS
   int      vscanf(const char * __restrict, __va_list)
                   __scanflike(1, 0);
   int      vfscanf(FILE * __restrict, const char * __restrict, __va_list)
                   __scanflike(2, 0);
   int      vsscanf(const char * __restrict, const char * __restrict,
       __va_list)
       __scanflike(2, 0);
   __END_DECLS
   #endif /* _ISOC99_SOURCE || _NETBSD_SOURCE */
   
   /*
    * Routines that are purely local.
    */
   #if defined(_NETBSD_SOURCE)
   
   #define FPARSELN_UNESCESC       0x01
   #define FPARSELN_UNESCCONT      0x02
   #define FPARSELN_UNESCCOMM      0x04
   #define FPARSELN_UNESCREST      0x08
   #define FPARSELN_UNESCALL       0x0f
   
   __BEGIN_DECLS
   int      asprintf(char ** __restrict, const char * __restrict, ...)
                   __printflike(2, 3);
   char    *fgetln(FILE * __restrict, size_t * __restrict);
   char    *fparseln(FILE *, size_t *, size_t *, const char[3], int);
   int      fpurge(FILE *);
   void     setbuffer(FILE *, char *, int);
   int      setlinebuf(FILE *);
   int      vasprintf(char ** __restrict, const char * __restrict,
       __va_list)
                   __printflike(2, 0);
   const char *fmtcheck(const char *, const char *)
                   __format_arg(2);
   __END_DECLS
   
 /*  /*
  * Stdio function-access interface.   * Stdio function-access interface.
  */   */
 __BEGIN_DECLS  __BEGIN_DECLS
 FILE    *funopen __P((const void *,  FILE    *funopen(const void *,
                 int (*)(void *, char *, int),      int (*)(void *, char *, int),
                 int (*)(void *, const char *, int),      int (*)(void *, const char *, int),
                 fpos_t (*)(void *, fpos_t, int),      off_t (*)(void *, off_t, int),
                 int (*)(void *)));      int (*)(void *));
   FILE    *funopen2(const void *,
       ssize_t (*)(void *, void *, size_t),
       ssize_t (*)(void *, const void *, size_t),
       off_t (*)(void *, off_t, int),
       int (*)(void *),
       int (*)(void *));
 __END_DECLS  __END_DECLS
 #define fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0)  #define fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0)
 #define fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0)  #define fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0)
 #endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */  #define fropen2(cookie, fn) funopen2(cookie, fn, 0, 0, 0, 0)
   #define fwopen2(cookie, fn) funopen2(cookie, 0, fn, 0, 0, 0)
   #endif /* _NETBSD_SOURCE */
   
 /*  /*
  * Functions internal to the implementation.   * Functions internal to the implementation.
  */   */
 __BEGIN_DECLS  __BEGIN_DECLS
 int     __srget __P((FILE *));  int     __srget(FILE *);
 int     __svfscanf __P((FILE *, const char *, _BSD_VA_LIST_));  int     __swbuf(int, FILE *);
 int     __swbuf __P((int, FILE *));  
 __END_DECLS  __END_DECLS
   
 /*  /*
Line 364  static __inline int __sputc(int _c, FILE
Line 482  static __inline int __sputc(int _c, FILE
 #define __sfeof(p)      (((p)->_flags & __SEOF) != 0)  #define __sfeof(p)      (((p)->_flags & __SEOF) != 0)
 #define __sferror(p)    (((p)->_flags & __SERR) != 0)  #define __sferror(p)    (((p)->_flags & __SERR) != 0)
 #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 == -1 ? -1 : (int)(unsigned short)(p)->_file)
   
 #ifndef lint  #if !defined(__lint__) && !defined(__cplusplus)
 #ifndef _REENTRANT  #if !defined(_REENTRANT) && !defined(_PTHREADS)
 #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)
   
 #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 /* !_REENTRANT && !_PTHREADS */
 #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  #endif /* !__lint__ && !__cplusplus */
   
   #if (defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
       defined(_NETBSD_SOURCE)) && !defined(__cplusplus)
   #if !defined(_REENTRANT) && !defined(_PTHREADS)
 #define fileno(p)       __sfileno(p)  #define fileno(p)       __sfileno(p)
   #endif /* !_REENTRANT && !_PTHREADS */
   #endif /* !_ANSI_SOURCE && !__cplusplus*/
   
   #if (_POSIX_C_SOURCE - 0) >= 200809L || defined(_NETBSD_SOURCE)
   int      vdprintf(int, const char * __restrict, __va_list)
                   __printflike(2, 0);
   int      dprintf(int, const char * __restrict, ...)
                   __printflike(2, 3);
   #endif /* (_POSIX_C_SOURCE - 0) >= 200809L || defined(_NETBSD_SOURCE) */
   
   #if (_POSIX_C_SOURCE - 0) >= 199506L || (_XOPEN_SOURCE - 0) >= 500 || \
       defined(_REENTRANT) || defined(_NETBSD_SOURCE) && !defined(__cplusplus)
 #define getc_unlocked(fp)       __sgetc(fp)  #define getc_unlocked(fp)       __sgetc(fp)
 #define putc_unlocked(x, fp)    __sputc(x, fp)  #define putc_unlocked(x, fp)    __sputc(x, fp)
   
 #define getchar_unlocked()      getc_unlocked(stdin)  #define getchar_unlocked()      getc_unlocked(stdin)
 #define putchar_unlocked(x)     putc_unlocked(x, stdout)  #define putchar_unlocked(x)     putc_unlocked(x, stdout)
 #endif /* _ANSI_SOURCE */  #endif /* _POSIX_C_SOURCE >= 199506 || _XOPEN_SOURCE >= 500 || _REENTRANT... */
   
   #if (_POSIX_C_SOURCE - 0) >= 200809L || (_XOPEN_SOURCE - 0) >= 700 || \
       defined(_NETBSD_SOURCE)
   FILE *fmemopen(void * __restrict, size_t, const char * __restrict);
   #endif
   
   #if (_POSIX_C_SOURCE - 0) >= 200809L || defined(_NETBSD_SOURCE)
   #  ifndef __LOCALE_T_DECLARED
   typedef struct _locale          *locale_t;
   #  define __LOCALE_T_DECLARED
   #  endif
   __BEGIN_DECLS
   int      fprintf_l(FILE * __restrict, locale_t, const char * __restrict, ...)
                   __printflike(3, 4);
   int      vfprintf_l(FILE * __restrict, locale_t, const char * __restrict,
                   __va_list) __printflike(3, 0);
   int      printf_l(locale_t, const char * __restrict, ...)
                   __printflike(2, 3);
   int      vprintf_l(locale_t, const char * __restrict, __va_list)
                   __printflike(2, 0);
   int      asprintf_l(char ** __restrict, locale_t, const char * __restrict, ...)
                   __printflike(3, 4);
   int      vasprintf_l(char ** __restrict, locale_t, const char * __restrict,
       __va_list)
                   __printflike(3, 0);
   int      vdprintf_l(int, locale_t, const char * __restrict, __va_list)
                   __printflike(3, 0);
   int      dprintf_l(int, locale_t, const char * __restrict, ...)
                   __printflike(3, 4);
   int      snprintf_l(char * __restrict, size_t, locale_t,
                       const char * __restrict, ...) __printflike(4, 5);
   int      vsnprintf_l(char * __restrict, size_t, locale_t,
                        const char * __restrict, __va_list) __printflike(4, 0);
   #ifndef __AUDIT__
   int      sprintf_l(char * __restrict, locale_t, const char * __restrict, ...)
                      __printflike(3, 4);
   int      vsprintf_l(char * __restrict, locale_t, const char * __restrict,
                       __va_list) __printflike(3, 0);
   #endif
   
   int      fscanf_l(FILE * __restrict, locale_t, const char * __restrict, ...)
       __scanflike(3, 4);
   int      scanf_l(locale_t, const char * __restrict, ...)
       __scanflike(2, 3);
   int      sscanf_l(const char * __restrict, locale_t,
       const char * __restrict, ...) __scanflike(3, 4);
   int      vscanf_l(locale_t, const char * __restrict, __va_list)
       __scanflike(2, 0);
   int      vscanf_l(locale_t, const char * __restrict, __va_list)
       __scanflike(2, 0);
   int      vfscanf_l(FILE * __restrict, locale_t, const char * __restrict,
       __va_list) __scanflike(3, 0);
   int      vsscanf_l(const char * __restrict, locale_t, const char * __restrict,
       __va_list) __scanflike(3, 0);
   #ifdef _NETBSD_SOURCE
   int     snprintf_ss(char *restrict, size_t, const char * __restrict, ...)
       __printflike(3, 4);
   int     vsnprintf_ss(char *restrict, size_t, const char * __restrict, __va_list)
       __printflike(3, 0);
   #endif
   __END_DECLS
   #endif
   
   #if _FORTIFY_SOURCE > 0
   #include <ssp/stdio.h>
   #endif
   
 #endif /* _STDIO_H_ */  #endif /* _STDIO_H_ */

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.79.2.3

CVSweb <webmaster@jp.NetBSD.org>