Use FLOCKFILE() and FUNLOCKFILE() macros from reentrant.h so that stdio
can be made thread-safe.
This commit is contained in:
parent
397b763df8
commit
da2013ac86
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: clrerr.c,v 1.5 1997/07/13 20:14:49 christos Exp $ */
|
||||
/* $NetBSD: clrerr.c,v 1.6 1998/01/19 07:38:41 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,15 +41,19 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)clrerr.c 8.1 (Berkeley) 6/4/93";
|
||||
#endif
|
||||
__RCSID("$NetBSD: clrerr.c,v 1.5 1997/07/13 20:14:49 christos Exp $");
|
||||
__RCSID("$NetBSD: clrerr.c,v 1.6 1998/01/19 07:38:41 jtc Exp $");
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "reentrant.h"
|
||||
|
||||
#undef clearerr
|
||||
|
||||
void
|
||||
clearerr(fp)
|
||||
FILE *fp;
|
||||
{
|
||||
FLOCKFILE(fp);
|
||||
__sclearerr(fp);
|
||||
FUNLOCKFILE(fp);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fclose.c,v 1.6 1997/07/13 20:14:49 christos Exp $ */
|
||||
/* $NetBSD: fclose.c,v 1.7 1998/01/19 07:38:42 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,13 +41,14 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fclose.c 8.1 (Berkeley) 6/4/93";
|
||||
#endif
|
||||
__RCSID("$NetBSD: fclose.c,v 1.6 1997/07/13 20:14:49 christos Exp $");
|
||||
__RCSID("$NetBSD: fclose.c,v 1.7 1998/01/19 07:38:42 jtc Exp $");
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "local.h"
|
||||
#include "reentrant.h"
|
||||
|
||||
int
|
||||
fclose(fp)
|
||||
|
@ -55,8 +56,10 @@ fclose(fp)
|
|||
{
|
||||
register int r;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
if (fp->_flags == 0) { /* not open! */
|
||||
errno = EBADF;
|
||||
FUNLOCKFILE(fp);
|
||||
return (EOF);
|
||||
}
|
||||
r = fp->_flags & __SWR ? __sflush(fp) : 0;
|
||||
|
@ -70,5 +73,6 @@ fclose(fp)
|
|||
FREELB(fp);
|
||||
fp->_flags = 0; /* Release this FILE for reuse. */
|
||||
fp->_r = fp->_w = 0; /* Mess up if reaccessed. */
|
||||
FUNLOCKFILE(fp);
|
||||
return (r);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fflush.c,v 1.8 1997/07/13 20:14:52 christos Exp $ */
|
||||
/* $NetBSD: fflush.c,v 1.9 1998/01/19 07:38:42 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,27 +41,34 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fflush.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: fflush.c,v 1.8 1997/07/13 20:14:52 christos Exp $");
|
||||
__RCSID("$NetBSD: fflush.c,v 1.9 1998/01/19 07:38:42 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include "local.h"
|
||||
#include "reentrant.h"
|
||||
|
||||
/* Flush a single file, or (if fp is NULL) all files. */
|
||||
int
|
||||
fflush(fp)
|
||||
register FILE *fp;
|
||||
{
|
||||
int r;
|
||||
|
||||
if (fp == NULL)
|
||||
return (_fwalk(__sflush));
|
||||
|
||||
FLOCKFILE(fp);
|
||||
if ((fp->_flags & (__SWR | __SRW)) == 0) {
|
||||
errno = EBADF;
|
||||
return (EOF);
|
||||
r = EOF;
|
||||
} else {
|
||||
r = __sflush(fp);
|
||||
}
|
||||
return (__sflush(fp));
|
||||
FUNLOCKFILE(fp);
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fgetc.c,v 1.6 1997/07/13 20:14:53 christos Exp $ */
|
||||
/* $NetBSD: fgetc.c,v 1.7 1998/01/19 07:38:43 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,15 +41,21 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fgetc.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: fgetc.c,v 1.6 1997/07/13 20:14:53 christos Exp $");
|
||||
__RCSID("$NetBSD: fgetc.c,v 1.7 1998/01/19 07:38:43 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "reentrant.h"
|
||||
|
||||
int
|
||||
fgetc(fp)
|
||||
FILE *fp;
|
||||
{
|
||||
return (__sgetc(fp));
|
||||
int r;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
r = __sgetc(fp);
|
||||
FUNLOCKFILE(fp);
|
||||
return r;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fgetln.c,v 1.3 1997/07/13 20:14:54 christos Exp $ */
|
||||
/* $NetBSD: fgetln.c,v 1.4 1998/01/19 07:38:44 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,7 +41,7 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fgetline.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: fgetln.c,v 1.3 1997/07/13 20:14:54 christos Exp $");
|
||||
__RCSID("$NetBSD: fgetln.c,v 1.4 1998/01/19 07:38:44 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
|
@ -49,6 +49,7 @@ __RCSID("$NetBSD: fgetln.c,v 1.3 1997/07/13 20:14:54 christos Exp $");
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "local.h"
|
||||
#include "reentrant.h"
|
||||
|
||||
int __slbexpand __P((FILE *, size_t));
|
||||
|
||||
|
@ -94,9 +95,12 @@ fgetln(fp, lenp)
|
|||
register size_t len;
|
||||
size_t off;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
|
||||
/* make sure there is input */
|
||||
if (fp->_r <= 0 && __srefill(fp)) {
|
||||
*lenp = 0;
|
||||
FUNLOCKFILE(fp);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
|
@ -115,6 +119,7 @@ fgetln(fp, lenp)
|
|||
fp->_flags |= __SMOD;
|
||||
fp->_r -= len;
|
||||
fp->_p = p;
|
||||
FUNLOCKFILE(fp);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
|
@ -162,9 +167,11 @@ fgetln(fp, lenp)
|
|||
#ifdef notdef
|
||||
fp->_lb._base[len] = 0;
|
||||
#endif
|
||||
FUNLOCKFILE(fp);
|
||||
return ((char *)fp->_lb._base);
|
||||
|
||||
error:
|
||||
*lenp = 0; /* ??? */
|
||||
FUNLOCKFILE(fp);
|
||||
return (NULL); /* ??? */
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fgets.c,v 1.6 1997/07/13 20:14:55 christos Exp $ */
|
||||
/* $NetBSD: fgets.c,v 1.7 1998/01/19 07:38:44 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,13 +41,14 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fgets.c 8.2 (Berkeley) 12/22/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: fgets.c,v 1.6 1997/07/13 20:14:55 christos Exp $");
|
||||
__RCSID("$NetBSD: fgets.c,v 1.7 1998/01/19 07:38:44 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "local.h"
|
||||
#include "reentrant.h"
|
||||
|
||||
/*
|
||||
* Read at most n-1 characters from the given file.
|
||||
|
@ -67,6 +68,7 @@ fgets(buf, n, fp)
|
|||
if (n <= 0) /* sanity check */
|
||||
return (NULL);
|
||||
|
||||
FLOCKFILE(fp);
|
||||
s = buf;
|
||||
n--; /* leave space for NUL */
|
||||
while (n != 0) {
|
||||
|
@ -108,5 +110,6 @@ fgets(buf, n, fp)
|
|||
n -= len;
|
||||
}
|
||||
*s = 0;
|
||||
FUNLOCKFILE(fp);
|
||||
return (buf);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fpurge.c,v 1.5 1997/07/13 20:15:01 christos Exp $ */
|
||||
/* $NetBSD: fpurge.c,v 1.6 1998/01/19 07:38:45 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,7 +41,7 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fpurge.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: fpurge.c,v 1.5 1997/07/13 20:15:01 christos Exp $");
|
||||
__RCSID("$NetBSD: fpurge.c,v 1.6 1998/01/19 07:38:45 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
|
@ -49,6 +49,7 @@ __RCSID("$NetBSD: fpurge.c,v 1.5 1997/07/13 20:15:01 christos Exp $");
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "local.h"
|
||||
#include "reentrant.h"
|
||||
|
||||
/*
|
||||
* fpurge: like fflush, but without writing anything: leave the
|
||||
|
@ -58,8 +59,10 @@ int
|
|||
fpurge(fp)
|
||||
register FILE *fp;
|
||||
{
|
||||
FLOCKFILE(fp);
|
||||
if (!fp->_flags) {
|
||||
errno = EBADF;
|
||||
FUNLOCKFILE(fp);
|
||||
return(EOF);
|
||||
}
|
||||
|
||||
|
@ -68,5 +71,6 @@ fpurge(fp)
|
|||
fp->_p = fp->_bf._base;
|
||||
fp->_r = 0;
|
||||
fp->_w = fp->_flags & (__SLBF|__SNBF) ? 0 : fp->_bf._size;
|
||||
FUNLOCKFILE(fp);
|
||||
return (0);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fputc.c,v 1.6 1997/07/13 20:15:02 christos Exp $ */
|
||||
/* $NetBSD: fputc.c,v 1.7 1998/01/19 07:38:46 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,16 +41,22 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fputc.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: fputc.c,v 1.6 1997/07/13 20:15:02 christos Exp $");
|
||||
__RCSID("$NetBSD: fputc.c,v 1.7 1998/01/19 07:38:46 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "reentrant.h"
|
||||
|
||||
int
|
||||
fputc(c, fp)
|
||||
int c;
|
||||
register FILE *fp;
|
||||
{
|
||||
return (putc(c, fp));
|
||||
int r;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
r = __sputc(c, fp);
|
||||
FUNLOCKFILE(fp);
|
||||
return r;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fputs.c,v 1.6 1997/07/13 20:15:02 christos Exp $ */
|
||||
/* $NetBSD: fputs.c,v 1.7 1998/01/19 07:38:46 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,13 +41,14 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fputs.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: fputs.c,v 1.6 1997/07/13 20:15:02 christos Exp $");
|
||||
__RCSID("$NetBSD: fputs.c,v 1.7 1998/01/19 07:38:46 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "fvwrite.h"
|
||||
#include "reentrant.h"
|
||||
|
||||
/*
|
||||
* Write the given string to the given file.
|
||||
|
@ -59,10 +60,14 @@ fputs(s, fp)
|
|||
{
|
||||
struct __suio uio;
|
||||
struct __siov iov;
|
||||
int r;
|
||||
|
||||
iov.iov_base = (void *)s;
|
||||
iov.iov_len = uio.uio_resid = strlen(s);
|
||||
uio.uio_iov = &iov;
|
||||
uio.uio_iovcnt = 1;
|
||||
return (__sfvwrite(fp, &uio));
|
||||
FLOCKFILE(fp);
|
||||
r = __sfvwrite(fp, &uio);
|
||||
FUNLOCKFILE(fp);
|
||||
return r;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fread.c,v 1.7 1997/07/13 20:15:03 christos Exp $ */
|
||||
/* $NetBSD: fread.c,v 1.8 1998/01/19 07:38:47 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,13 +41,14 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fread.c 8.2 (Berkeley) 12/11/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: fread.c,v 1.7 1997/07/13 20:15:03 christos Exp $");
|
||||
__RCSID("$NetBSD: fread.c,v 1.8 1998/01/19 07:38:47 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "local.h"
|
||||
#include "reentrant.h"
|
||||
|
||||
size_t
|
||||
fread(buf, size, count, fp)
|
||||
|
@ -67,6 +68,7 @@ fread(buf, size, count, fp)
|
|||
*/
|
||||
if ((resid = count * size) == 0)
|
||||
return (0);
|
||||
FLOCKFILE(fp);
|
||||
if (fp->_r < 0)
|
||||
fp->_r = 0;
|
||||
total = resid;
|
||||
|
@ -79,11 +81,13 @@ fread(buf, size, count, fp)
|
|||
resid -= r;
|
||||
if (__srefill(fp)) {
|
||||
/* no more input: return partial result */
|
||||
FUNLOCKFILE(fp);
|
||||
return ((total - resid) / size);
|
||||
}
|
||||
}
|
||||
(void)memcpy((void *)p, (void *)fp->_p, resid);
|
||||
fp->_r -= resid;
|
||||
fp->_p += resid;
|
||||
FUNLOCKFILE(fp);
|
||||
return (count);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fseek.c,v 1.11 1997/12/19 14:08:41 kleink Exp $ */
|
||||
/* $NetBSD: fseek.c,v 1.12 1998/01/19 07:38:48 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,7 +41,7 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fseek.c 8.3 (Berkeley) 1/2/94";
|
||||
#else
|
||||
__RCSID("$NetBSD: fseek.c,v 1.11 1997/12/19 14:08:41 kleink Exp $");
|
||||
__RCSID("$NetBSD: fseek.c,v 1.12 1998/01/19 07:38:48 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
|
@ -52,6 +52,7 @@ __RCSID("$NetBSD: fseek.c,v 1.11 1997/12/19 14:08:41 kleink Exp $");
|
|||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include "local.h"
|
||||
#include "reentrant.h"
|
||||
|
||||
#define POS_ERR (-(fpos_t)1)
|
||||
|
||||
|
@ -75,6 +76,8 @@ fseek(fp, offset, whence)
|
|||
if (!__sdidinit)
|
||||
__sinit();
|
||||
|
||||
FLOCKFILE(fp);
|
||||
|
||||
/*
|
||||
* Have to be able to seek.
|
||||
*/
|
||||
|
@ -100,8 +103,10 @@ fseek(fp, offset, whence)
|
|||
curoff = fp->_offset;
|
||||
else {
|
||||
curoff = (*seekfn)(fp->_cookie, (fpos_t)0, SEEK_CUR);
|
||||
if (curoff == -1L)
|
||||
if (curoff == -1L) {
|
||||
FUNLOCKFILE(fp);
|
||||
return (-1);
|
||||
}
|
||||
}
|
||||
if (fp->_flags & __SRD) {
|
||||
curoff -= fp->_r;
|
||||
|
@ -123,6 +128,7 @@ fseek(fp, offset, whence)
|
|||
|
||||
default:
|
||||
errno = EINVAL;
|
||||
FUNLOCKFILE(fp);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
|
@ -206,6 +212,7 @@ fseek(fp, offset, whence)
|
|||
if (HASUB(fp))
|
||||
FREEUB(fp);
|
||||
fp->_flags &= ~__SEOF;
|
||||
FUNLOCKFILE(fp);
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
@ -232,6 +239,7 @@ fseek(fp, offset, whence)
|
|||
fp->_p += n;
|
||||
fp->_r -= n;
|
||||
}
|
||||
FUNLOCKFILE(fp);
|
||||
return (0);
|
||||
|
||||
/*
|
||||
|
@ -241,6 +249,7 @@ fseek(fp, offset, whence)
|
|||
dumb:
|
||||
if (__sflush(fp) ||
|
||||
(*seekfn)(fp->_cookie, (fpos_t)offset, whence) == POS_ERR) {
|
||||
FUNLOCKFILE(fp);
|
||||
return (-1);
|
||||
}
|
||||
/* success: clear EOF indicator and discard ungetc() data */
|
||||
|
@ -250,5 +259,6 @@ dumb:
|
|||
fp->_r = 0;
|
||||
/* fp->_w = 0; */ /* unnecessary (I think...) */
|
||||
fp->_flags &= ~__SEOF;
|
||||
FUNLOCKFILE(fp);
|
||||
return (0);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ftell.c,v 1.7 1997/07/13 20:15:07 christos Exp $ */
|
||||
/* $NetBSD: ftell.c,v 1.8 1998/01/19 07:38:48 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,13 +41,14 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)ftell.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: ftell.c,v 1.7 1997/07/13 20:15:07 christos Exp $");
|
||||
__RCSID("$NetBSD: ftell.c,v 1.8 1998/01/19 07:38:48 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include "local.h"
|
||||
#include "reentrant.h"
|
||||
|
||||
/*
|
||||
* ftell: return current offset.
|
||||
|
@ -58,7 +59,10 @@ ftell(fp)
|
|||
{
|
||||
register fpos_t pos;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
|
||||
if (fp->_seek == NULL) {
|
||||
FUNLOCKFILE(fp);
|
||||
errno = ESPIPE; /* historic practice */
|
||||
return (-1L);
|
||||
}
|
||||
|
@ -72,8 +76,10 @@ ftell(fp)
|
|||
pos = fp->_offset;
|
||||
else {
|
||||
pos = (*fp->_seek)(fp->_cookie, (fpos_t)0, SEEK_CUR);
|
||||
if (pos == -1L)
|
||||
if (pos == -1L) {
|
||||
FUNLOCKFILE(fp);
|
||||
return (pos);
|
||||
}
|
||||
}
|
||||
if (fp->_flags & __SRD) {
|
||||
/*
|
||||
|
@ -92,5 +98,6 @@ ftell(fp)
|
|||
*/
|
||||
pos += fp->_p - fp->_bf._base;
|
||||
}
|
||||
FUNLOCKFILE(fp);
|
||||
return (pos);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fwrite.c,v 1.6 1997/07/13 20:15:10 christos Exp $ */
|
||||
/* $NetBSD: fwrite.c,v 1.7 1998/01/19 07:38:49 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,13 +41,14 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)fwrite.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: fwrite.c,v 1.6 1997/07/13 20:15:10 christos Exp $");
|
||||
__RCSID("$NetBSD: fwrite.c,v 1.7 1998/01/19 07:38:49 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "local.h"
|
||||
#include "fvwrite.h"
|
||||
#include "reentrant.h"
|
||||
|
||||
/*
|
||||
* Write `count' objects (each size `size') from memory to the given file.
|
||||
|
@ -73,7 +74,9 @@ fwrite(buf, size, count, fp)
|
|||
* skip the divide if this happens, since divides are
|
||||
* generally slow and since this occurs whenever size==0.
|
||||
*/
|
||||
if (__sfvwrite(fp, &uio) == 0)
|
||||
return (count);
|
||||
return ((n - uio.uio_resid) / size);
|
||||
FLOCKFILE(fp);
|
||||
if (__sfvwrite(fp, &uio) != 0)
|
||||
count = ((n - uio.uio_resid) / size);
|
||||
FUNLOCKFILE(fp);
|
||||
return (count);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: getc.c,v 1.6 1997/07/13 20:15:10 christos Exp $ */
|
||||
/* $NetBSD: getc.c,v 1.7 1998/01/19 07:38:50 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,20 +41,35 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)getc.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: getc.c,v 1.6 1997/07/13 20:15:10 christos Exp $");
|
||||
__RCSID("$NetBSD: getc.c,v 1.7 1998/01/19 07:38:50 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "reentrant.h"
|
||||
|
||||
/*
|
||||
* A subroutine version of the macro getc.
|
||||
*/
|
||||
#undef getc
|
||||
#undef getc_unlocked
|
||||
|
||||
int
|
||||
getc(fp)
|
||||
register FILE *fp;
|
||||
FILE *fp;
|
||||
{
|
||||
int r;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
r = __sgetc(fp);
|
||||
FUNLOCKFILE(fp);
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
getc_unlocked(fp)
|
||||
FILE *fp;
|
||||
{
|
||||
|
||||
return (__sgetc(fp));
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: getchar.c,v 1.6 1997/07/13 20:15:11 christos Exp $ */
|
||||
/* $NetBSD: getchar.c,v 1.7 1998/01/19 07:38:51 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,7 +41,7 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)getchar.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: getchar.c,v 1.6 1997/07/13 20:15:11 christos Exp $");
|
||||
__RCSID("$NetBSD: getchar.c,v 1.7 1998/01/19 07:38:51 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
|
@ -49,11 +49,25 @@ __RCSID("$NetBSD: getchar.c,v 1.6 1997/07/13 20:15:11 christos Exp $");
|
|||
* A subroutine version of the macro getchar.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include "reentrant.h"
|
||||
|
||||
#undef getchar
|
||||
#undef getchar_unlocked
|
||||
|
||||
int
|
||||
getchar()
|
||||
{
|
||||
return (getc(stdin));
|
||||
FILE *fp = stdin;
|
||||
int r;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
r = __sgetc(fp);
|
||||
FUNLOCKFILE(fp);
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
getchar_unlocked()
|
||||
{
|
||||
return (__sgetc(stdin));
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: putc.c,v 1.6 1997/07/13 20:15:19 christos Exp $ */
|
||||
/* $NetBSD: putc.c,v 1.7 1998/01/19 07:38:51 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,21 +41,36 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)putc.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: putc.c,v 1.6 1997/07/13 20:15:19 christos Exp $");
|
||||
__RCSID("$NetBSD: putc.c,v 1.7 1998/01/19 07:38:51 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "reentrant.h"
|
||||
|
||||
/*
|
||||
* A subroutine version of the macro putc.
|
||||
*/
|
||||
#undef putc
|
||||
#undef putc_unlocked
|
||||
|
||||
int
|
||||
putc(c, fp)
|
||||
int c;
|
||||
register FILE *fp;
|
||||
FILE *fp;
|
||||
{
|
||||
int r;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
r = __sputc(c, fp);
|
||||
FUNLOCKFILE(fp);
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
putc_unlocked(c, fp)
|
||||
int c;
|
||||
FILE *fp;
|
||||
{
|
||||
return (__sputc(c, fp));
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: putchar.c,v 1.6 1997/07/13 20:15:19 christos Exp $ */
|
||||
/* $NetBSD: putchar.c,v 1.7 1998/01/19 07:38:52 jtc Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -41,13 +41,15 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)putchar.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: putchar.c,v 1.6 1997/07/13 20:15:19 christos Exp $");
|
||||
__RCSID("$NetBSD: putchar.c,v 1.7 1998/01/19 07:38:52 jtc Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "reentrant.h"
|
||||
|
||||
#undef putchar
|
||||
#undef putchar_unlocked
|
||||
|
||||
/*
|
||||
* A subroutine version of the macro putchar
|
||||
|
@ -56,7 +58,18 @@ int
|
|||
putchar(c)
|
||||
int c;
|
||||
{
|
||||
register FILE *so = stdout;
|
||||
FILE *fp = stdout;
|
||||
int r;
|
||||
|
||||
return (__sputc(c, so));
|
||||
FLOCKFILE(fp);
|
||||
r = __sputc(c, fp);
|
||||
FUNLOCKFILE(fp);
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
putchar_unlocked(c)
|
||||
int c;
|
||||
{
|
||||
return (__sputc(c, stdout));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue