1*62f08720SJoerg Sonnenberger.\" $NetBSD: fgetws.3,v 1.2 2003/08/07 16:43:23 agc Exp $ 2*62f08720SJoerg Sonnenberger.\" $DragonFly: src/lib/libc/stdio/fgetws.3,v 1.1 2005/07/25 00:37:41 joerg Exp $ 3*62f08720SJoerg Sonnenberger.\" 4*62f08720SJoerg Sonnenberger.\" Copyright (c) 1990, 1991, 1993 5*62f08720SJoerg Sonnenberger.\" The Regents of the University of California. All rights reserved. 6*62f08720SJoerg Sonnenberger.\" 7*62f08720SJoerg Sonnenberger.\" This code is derived from software contributed to Berkeley by 8*62f08720SJoerg Sonnenberger.\" Chris Torek and the American National Standards Committee X3, 9*62f08720SJoerg Sonnenberger.\" on Information Processing Systems. 10*62f08720SJoerg Sonnenberger.\" 11*62f08720SJoerg Sonnenberger.\" Redistribution and use in source and binary forms, with or without 12*62f08720SJoerg Sonnenberger.\" modification, are permitted provided that the following conditions 13*62f08720SJoerg Sonnenberger.\" are met: 14*62f08720SJoerg Sonnenberger.\" 1. Redistributions of source code must retain the above copyright 15*62f08720SJoerg Sonnenberger.\" notice, this list of conditions and the following disclaimer. 16*62f08720SJoerg Sonnenberger.\" 2. Redistributions in binary form must reproduce the above copyright 17*62f08720SJoerg Sonnenberger.\" notice, this list of conditions and the following disclaimer in the 18*62f08720SJoerg Sonnenberger.\" documentation and/or other materials provided with the distribution. 19*62f08720SJoerg Sonnenberger.\" 3. Neither the name of the University nor the names of its contributors 20*62f08720SJoerg Sonnenberger.\" may be used to endorse or promote products derived from this software 21*62f08720SJoerg Sonnenberger.\" without specific prior written permission. 22*62f08720SJoerg Sonnenberger.\" 23*62f08720SJoerg Sonnenberger.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24*62f08720SJoerg Sonnenberger.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25*62f08720SJoerg Sonnenberger.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26*62f08720SJoerg Sonnenberger.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27*62f08720SJoerg Sonnenberger.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28*62f08720SJoerg Sonnenberger.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29*62f08720SJoerg Sonnenberger.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30*62f08720SJoerg Sonnenberger.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31*62f08720SJoerg Sonnenberger.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32*62f08720SJoerg Sonnenberger.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33*62f08720SJoerg Sonnenberger.\" SUCH DAMAGE. 34*62f08720SJoerg Sonnenberger.\" 35*62f08720SJoerg Sonnenberger.\" @(#)fgets.3 8.1 (Berkeley) 6/4/93 36*62f08720SJoerg Sonnenberger.\" 37*62f08720SJoerg Sonnenberger.\" Original version ID: 38*62f08720SJoerg Sonnenberger.\" FreeBSD: src/lib/libc/stdio/fgets.3,v 1.16 2002/05/31 05:01:17 archie Exp 39*62f08720SJoerg Sonnenberger.\" FreeBSD: src/lib/libc/stdio/fgetws.3,v 1.2 2002/09/06 11:23:55 tjr Exp 40*62f08720SJoerg Sonnenberger.\" 41*62f08720SJoerg Sonnenberger.Dd August 6, 2002 42*62f08720SJoerg Sonnenberger.Dt FGETWS 3 43*62f08720SJoerg Sonnenberger.Os 44*62f08720SJoerg Sonnenberger.Sh NAME 45*62f08720SJoerg Sonnenberger.Nm fgetws 46*62f08720SJoerg Sonnenberger.Nd get a line of wide characters from a stream 47*62f08720SJoerg Sonnenberger.Sh LIBRARY 48*62f08720SJoerg Sonnenberger.Lb libc 49*62f08720SJoerg Sonnenberger.Sh SYNOPSIS 50*62f08720SJoerg Sonnenberger.In stdio.h 51*62f08720SJoerg Sonnenberger.In wchar.h 52*62f08720SJoerg Sonnenberger.Ft "wchar_t *" 53*62f08720SJoerg Sonnenberger.Fn fgetws "wchar_t * restrict ws" "int n" "FILE * restrict fp" 54*62f08720SJoerg Sonnenberger.Sh DESCRIPTION 55*62f08720SJoerg SonnenbergerThe 56*62f08720SJoerg Sonnenberger.Fn fgetws 57*62f08720SJoerg Sonnenbergerfunction 58*62f08720SJoerg Sonnenbergerreads at most one less than the number of characters specified by 59*62f08720SJoerg Sonnenberger.Fa n 60*62f08720SJoerg Sonnenbergerfrom the given 61*62f08720SJoerg Sonnenberger.Fa fp 62*62f08720SJoerg Sonnenbergerand stores them in the wide character string 63*62f08720SJoerg Sonnenberger.Fa ws . 64*62f08720SJoerg SonnenbergerReading stops when a newline character is found, 65*62f08720SJoerg Sonnenbergerat end-of-file or error. 66*62f08720SJoerg SonnenbergerThe newline, if any, is retained. 67*62f08720SJoerg SonnenbergerIf any characters are read and there is no error, a 68*62f08720SJoerg Sonnenberger.Ql \e0 69*62f08720SJoerg Sonnenbergercharacter is appended to end the string. 70*62f08720SJoerg Sonnenberger.Sh RETURN VALUES 71*62f08720SJoerg SonnenbergerUpon successful completion, 72*62f08720SJoerg Sonnenberger.Fn fgetws 73*62f08720SJoerg Sonnenbergerreturns 74*62f08720SJoerg Sonnenberger.Fa ws . 75*62f08720SJoerg SonnenbergerIf end-of-file occurs before any characters are read, 76*62f08720SJoerg Sonnenberger.Fn fgetws 77*62f08720SJoerg Sonnenbergerreturns 78*62f08720SJoerg Sonnenberger.Dv NULL 79*62f08720SJoerg Sonnenbergerand the buffer contents remain unchanged. 80*62f08720SJoerg SonnenbergerIf an error occurs, 81*62f08720SJoerg Sonnenberger.Fn fgetws 82*62f08720SJoerg Sonnenbergerreturns 83*62f08720SJoerg Sonnenberger.Dv NULL 84*62f08720SJoerg Sonnenbergerand the buffer contents are indeterminate. 85*62f08720SJoerg SonnenbergerThe 86*62f08720SJoerg Sonnenberger.Fn fgetws 87*62f08720SJoerg Sonnenbergerfunction 88*62f08720SJoerg Sonnenbergerdoes not distinguish between end-of-file and error, and callers must use 89*62f08720SJoerg Sonnenberger.Xr feof 3 90*62f08720SJoerg Sonnenbergerand 91*62f08720SJoerg Sonnenberger.Xr ferror 3 92*62f08720SJoerg Sonnenbergerto determine which occurred. 93*62f08720SJoerg Sonnenberger.Sh ERRORS 94*62f08720SJoerg Sonnenberger.Bl -tag -width Er 95*62f08720SJoerg Sonnenberger.It Bq Er EBADF 96*62f08720SJoerg SonnenbergerThe given 97*62f08720SJoerg Sonnenberger.Fa fp 98*62f08720SJoerg Sonnenbergerargument is not a readable stream. 99*62f08720SJoerg Sonnenberger.It Bq Er EILSEQ 100*62f08720SJoerg SonnenbergerThe data obtained from the input stream does not form a valid 101*62f08720SJoerg Sonnenbergermultibyte character. 102*62f08720SJoerg Sonnenberger.El 103*62f08720SJoerg Sonnenberger.Pp 104*62f08720SJoerg SonnenbergerThe function 105*62f08720SJoerg Sonnenberger.Fn fgetws 106*62f08720SJoerg Sonnenbergermay also fail and set 107*62f08720SJoerg Sonnenberger.Va errno 108*62f08720SJoerg Sonnenbergerfor any of the errors specified for the routines 109*62f08720SJoerg Sonnenberger.Xr fflush 3 , 110*62f08720SJoerg Sonnenberger.Xr fstat 2 , 111*62f08720SJoerg Sonnenberger.Xr read 2 , 112*62f08720SJoerg Sonnenbergeror 113*62f08720SJoerg Sonnenberger.Xr malloc 3 . 114*62f08720SJoerg Sonnenberger.Sh SEE ALSO 115*62f08720SJoerg Sonnenberger.Xr feof 3 , 116*62f08720SJoerg Sonnenberger.Xr ferror 3 , 117*62f08720SJoerg Sonnenberger.Xr fgets 3 118*62f08720SJoerg Sonnenberger.Sh STANDARDS 119*62f08720SJoerg SonnenbergerThe 120*62f08720SJoerg Sonnenberger.Fn fgetws 121*62f08720SJoerg Sonnenbergerfunction 122*62f08720SJoerg Sonnenbergerconforms to 123*62f08720SJoerg Sonnenberger.St -p1003.1-2001 . 124