|
|
@ -1,4 +1,4 @@ |
|
|
|
/* $OpenBSD: stdio.h,v 1.36 2009/10/21 16:04:23 guenther Exp $ */ |
|
|
|
/* $OpenBSD: stdio.h,v 1.37 2009/10/22 01:23:16 guenther Exp $ */ |
|
|
|
/* $NetBSD: stdio.h,v 1.18 1996/04/25 18:29:21 jtc Exp $ */ |
|
|
|
|
|
|
|
/*- |
|
|
@ -157,7 +157,6 @@ __END_DECLS |
|
|
|
#define __SOFF 0x1000 /* set iff _offset is in fact correct */ |
|
|
|
#define __SMOD 0x2000 /* true => fgetln modified _p text */ |
|
|
|
#define __SALC 0x4000 /* allocate string space dynamically */ |
|
|
|
#define __SIGN 0x8000 /* ignore this file in _fwalk */ |
|
|
|
|
|
|
|
/* |
|
|
|
* The following three definitions are for ANSI C, which took them |
|
|
@ -323,6 +322,12 @@ char *tempnam(const char *, const char *); |
|
|
|
#endif |
|
|
|
__END_DECLS |
|
|
|
|
|
|
|
#ifndef _POSIX_THREADS |
|
|
|
# define flockfile(fp) /* nothing */ |
|
|
|
# define ftrylockfile(fp) (0) |
|
|
|
# define funlockfile(fp) /* nothing */ |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif /* __BSD_VISIBLE || __POSIX_VISIBLE || __XPG_VISIBLE */ |
|
|
|
|
|
|
|
/* |
|
|
@ -397,37 +402,32 @@ static __inline int __sputc(int _c, FILE *_p) { |
|
|
|
#define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) |
|
|
|
#define __sfileno(p) ((p)->_file) |
|
|
|
|
|
|
|
extern int __isthreaded; |
|
|
|
#define feof(p) __sfeof(p) |
|
|
|
#define ferror(p) __sferror(p) |
|
|
|
|
|
|
|
#define feof(p) (!__isthreaded ? __sfeof(p) : (feof)(p)) |
|
|
|
#define ferror(p) (!__isthreaded ? __sferror(p) : (ferror)(p)) |
|
|
|
#define clearerr(p) (!__isthreaded ? __sclearerr(p) : (clearerr)(p)) |
|
|
|
#ifndef _POSIX_THREADS |
|
|
|
#define clearerr(p) __sclearerr(p) |
|
|
|
#endif |
|
|
|
|
|
|
|
#if __POSIX_VISIBLE |
|
|
|
#define fileno(p) (!__isthreaded ? __sfileno(p) : (fileno)(p)) |
|
|
|
#define fileno(p) __sfileno(p) |
|
|
|
#endif |
|
|
|
|
|
|
|
#define getc(fp) (!__isthreaded ? __sgetc(fp) : (getc)(fp)) |
|
|
|
|
|
|
|
#if __BSD_VISIBLE |
|
|
|
/* |
|
|
|
* The macro implementations of putc and putc_unlocked are not |
|
|
|
* fully POSIX compliant; they do not set errno on failure |
|
|
|
*/ |
|
|
|
#define putc(x, fp) (!__isthreaded ? __sputc(x, fp) : (putc)(x, fp)) |
|
|
|
#endif /* __BSD_VISIBLE */ |
|
|
|
|
|
|
|
#ifndef lint |
|
|
|
#if __POSIX_VISIBLE >= 199506 |
|
|
|
#ifndef _POSIX_THREADS |
|
|
|
#define getc(fp) __sgetc(fp) |
|
|
|
#endif /* _POSIX_THREADS */ |
|
|
|
#define getc_unlocked(fp) __sgetc(fp) |
|
|
|
/* |
|
|
|
* The macro implementations of putc and putc_unlocked are not |
|
|
|
* fully POSIX compliant; they do not set errno on failure |
|
|
|
*/ |
|
|
|
#if __BSD_VISIBLE |
|
|
|
#ifndef _POSIX_THREADS |
|
|
|
#define putc(x, fp) __sputc(x, fp) |
|
|
|
#endif /* _POSIX_THREADS */ |
|
|
|
#define putc_unlocked(x, fp) __sputc(x, fp) |
|
|
|
#endif /* __BSD_VISIBLE */ |
|
|
|
#endif /* __POSIX_VISIBLE >= 199506 */ |
|
|
|
#endif /* lint */ |
|
|
|
|
|
|
|
#define getchar() getc(stdin) |
|
|
|