1/*- 2 * Copyright (c) 1990, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Chris Torek. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 24 unchanged lines hidden (view full) --- 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 */ 36 37#if defined(LIBC_SCCS) && !defined(lint) 38static char sccsid[] = "@(#)fwrite.c 8.1 (Berkeley) 6/4/93"; 39#endif /* LIBC_SCCS and not lint */ 40#include <sys/cdefs.h> |
41__FBSDID("$FreeBSD: head/lib/libc/stdio/fwrite.c 101776 2002-08-13 09:30:41Z tjr $"); |
42 43#include "namespace.h" 44#include <stdio.h> 45#include "un-namespace.h" 46#include "local.h" 47#include "fvwrite.h" 48#include "libc_private.h" 49 --- 12 unchanged lines hidden (view full) --- 62 struct __siov iov; 63 64 iov.iov_base = (void *)buf; 65 uio.uio_resid = iov.iov_len = n = count * size; 66 uio.uio_iov = &iov; 67 uio.uio_iovcnt = 1; 68 69 FLOCKFILE(fp); |
70 ORIENT(fp, -1); |
71 /* 72 * The usual case is success (__sfvwrite returns 0); 73 * skip the divide if this happens, since divides are 74 * generally slow and since this occurs whenever size==0. 75 */ 76 if (__sfvwrite(fp, &uio) != 0) 77 count = (n - uio.uio_resid) / size; 78 FUNLOCKFILE(fp); 79 return (count); 80} |