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 --- 20 unchanged lines hidden (view full) --- 29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * SUCH DAMAGE. 31 */ 32 33#if defined(LIBC_SCCS) && !defined(lint) 34static char sccsid[] = "@(#)puts.c 8.1 (Berkeley) 6/4/93"; 35#endif /* LIBC_SCCS and not lint */ 36#include <sys/cdefs.h> |
37__FBSDID("$FreeBSD: head/lib/libc/stdio/puts.c 249810 2013-04-23 14:36:44Z emaste $"); |
38 39#include "namespace.h" 40#include <stdio.h> 41#include <string.h> 42#include "un-namespace.h" 43#include "fvwrite.h" 44#include "libc_private.h" 45#include "local.h" 46 47/* 48 * Write the given string to stdout, appending a newline. 49 */ 50int |
51puts(char const *s) |
52{ 53 int retval; 54 size_t c = strlen(s); 55 struct __suio uio; 56 struct __siov iov[2]; 57 58 iov[0].iov_base = (void *)s; 59 iov[0].iov_len = c; 60 iov[1].iov_base = "\n"; 61 iov[1].iov_len = 1; 62 uio.uio_resid = c + 1; 63 uio.uio_iov = &iov[0]; 64 uio.uio_iovcnt = 2; 65 FLOCKFILE(stdout); 66 ORIENT(stdout, -1); 67 retval = __sfvwrite(stdout, &uio) ? EOF : '\n'; 68 FUNLOCKFILE(stdout); 69 return (retval); 70} |