xref: /dflybsd-src/lib/libc/stdio/fgetws.3 (revision 3623cebd048daab5b834d578b89faf1789b36672)
162f08720SJoerg Sonnenberger.\" Copyright (c) 1990, 1991, 1993
262f08720SJoerg Sonnenberger.\"	The Regents of the University of California.  All rights reserved.
362f08720SJoerg Sonnenberger.\"
462f08720SJoerg Sonnenberger.\" This code is derived from software contributed to Berkeley by
562f08720SJoerg Sonnenberger.\" Chris Torek and the American National Standards Committee X3,
662f08720SJoerg Sonnenberger.\" on Information Processing Systems.
762f08720SJoerg Sonnenberger.\"
862f08720SJoerg Sonnenberger.\" Redistribution and use in source and binary forms, with or without
962f08720SJoerg Sonnenberger.\" modification, are permitted provided that the following conditions
1062f08720SJoerg Sonnenberger.\" are met:
1162f08720SJoerg Sonnenberger.\" 1. Redistributions of source code must retain the above copyright
1262f08720SJoerg Sonnenberger.\"    notice, this list of conditions and the following disclaimer.
1362f08720SJoerg Sonnenberger.\" 2. Redistributions in binary form must reproduce the above copyright
1462f08720SJoerg Sonnenberger.\"    notice, this list of conditions and the following disclaimer in the
1562f08720SJoerg Sonnenberger.\"    documentation and/or other materials provided with the distribution.
1662f08720SJoerg Sonnenberger.\" 3. Neither the name of the University nor the names of its contributors
1762f08720SJoerg Sonnenberger.\"    may be used to endorse or promote products derived from this software
1862f08720SJoerg Sonnenberger.\"    without specific prior written permission.
1962f08720SJoerg Sonnenberger.\"
2062f08720SJoerg Sonnenberger.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2162f08720SJoerg Sonnenberger.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2262f08720SJoerg Sonnenberger.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2362f08720SJoerg Sonnenberger.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2462f08720SJoerg Sonnenberger.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2562f08720SJoerg Sonnenberger.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2662f08720SJoerg Sonnenberger.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2762f08720SJoerg Sonnenberger.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2862f08720SJoerg Sonnenberger.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2962f08720SJoerg Sonnenberger.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3062f08720SJoerg Sonnenberger.\" SUCH DAMAGE.
3162f08720SJoerg Sonnenberger.\"
3262f08720SJoerg Sonnenberger.\"     @(#)fgets.3	8.1 (Berkeley) 6/4/93
330d5acd74SJohn Marino.\" $FreeBSD: head/lib/libc/stdio/fgetws.3 165903 2007-01-09 00:28:16Z imp $
3462f08720SJoerg Sonnenberger.\"
35*3623cebdSSascha Wildner.Dd December 26, 2013
3662f08720SJoerg Sonnenberger.Dt FGETWS 3
3762f08720SJoerg Sonnenberger.Os
3862f08720SJoerg Sonnenberger.Sh NAME
39*3623cebdSSascha Wildner.Nm fgetws ,
40*3623cebdSSascha Wildner.Nm fgetws_l
4162f08720SJoerg Sonnenberger.Nd get a line of wide characters from a stream
4262f08720SJoerg Sonnenberger.Sh LIBRARY
4362f08720SJoerg Sonnenberger.Lb libc
4462f08720SJoerg Sonnenberger.Sh SYNOPSIS
4562f08720SJoerg Sonnenberger.In stdio.h
4662f08720SJoerg Sonnenberger.In wchar.h
4762f08720SJoerg Sonnenberger.Ft "wchar_t *"
4862f08720SJoerg Sonnenberger.Fn fgetws "wchar_t * restrict ws" "int n" "FILE * restrict fp"
49*3623cebdSSascha Wildner.In xlocale.h
50*3623cebdSSascha Wildner.Ft "wchar_t *"
51*3623cebdSSascha Wildner.Fn fgetws_l "wchar_t * restrict ws" "int n" "FILE * restrict fp" "locale_t locale"
5262f08720SJoerg Sonnenberger.Sh DESCRIPTION
5362f08720SJoerg SonnenbergerThe
5462f08720SJoerg Sonnenberger.Fn fgetws
55*3623cebdSSascha Wildnerand
56*3623cebdSSascha Wildner.Fn fgetws_l
57*3623cebdSSascha Wildnerfunctions read at most one less than the number of characters specified by
5862f08720SJoerg Sonnenberger.Fa n
5962f08720SJoerg Sonnenbergerfrom the given
6062f08720SJoerg Sonnenberger.Fa fp
61*3623cebdSSascha Wildnerand store them in the wide character string
6262f08720SJoerg Sonnenberger.Fa ws .
6362f08720SJoerg SonnenbergerReading stops when a newline character is found,
6462f08720SJoerg Sonnenbergerat end-of-file or error.
6562f08720SJoerg SonnenbergerThe newline, if any, is retained.
6662f08720SJoerg SonnenbergerIf any characters are read and there is no error, a
6762f08720SJoerg Sonnenberger.Ql \e0
6862f08720SJoerg Sonnenbergercharacter is appended to end the string.
69*3623cebdSSascha Wildner.Pp
70*3623cebdSSascha WildnerThe
71*3623cebdSSascha Wildner.Fn fgetws_l
72*3623cebdSSascha Wildnerfunction takes an explicit
73*3623cebdSSascha Wildner.Fa locale
74*3623cebdSSascha Wildnerargument, whereas the
75*3623cebdSSascha Wildner.Fn fgetws
76*3623cebdSSascha Wildnerfunction uses the current global or per-thread locale.
7762f08720SJoerg Sonnenberger.Sh RETURN VALUES
7862f08720SJoerg SonnenbergerUpon successful completion,
7962f08720SJoerg Sonnenberger.Fn fgetws
80*3623cebdSSascha Wildnerand
81*3623cebdSSascha Wildner.Fn fgetws_l
82*3623cebdSSascha Wildnerreturn
8362f08720SJoerg Sonnenberger.Fa ws .
8462f08720SJoerg SonnenbergerIf end-of-file occurs before any characters are read,
8562f08720SJoerg Sonnenberger.Fn fgetws
86*3623cebdSSascha Wildnerand
87*3623cebdSSascha Wildner.Fn fgetws_l
88*3623cebdSSascha Wildnerreturn
8962f08720SJoerg Sonnenberger.Dv NULL
9062f08720SJoerg Sonnenbergerand the buffer contents remain unchanged.
9162f08720SJoerg SonnenbergerIf an error occurs,
9262f08720SJoerg Sonnenberger.Fn fgetws
93*3623cebdSSascha Wildnerand
94*3623cebdSSascha Wildner.Fn fgetws_l
95*3623cebdSSascha Wildnerreturn
9662f08720SJoerg Sonnenberger.Dv NULL
9762f08720SJoerg Sonnenbergerand the buffer contents are indeterminate.
9862f08720SJoerg SonnenbergerThe
9962f08720SJoerg Sonnenberger.Fn fgetws
100*3623cebdSSascha Wildnerand
101*3623cebdSSascha Wildner.Fn fgetws_l
102*3623cebdSSascha Wildnerfunctions
103*3623cebdSSascha Wildnerdo not distinguish between end-of-file and error, and callers must use
10462f08720SJoerg Sonnenberger.Xr feof 3
10562f08720SJoerg Sonnenbergerand
10662f08720SJoerg Sonnenberger.Xr ferror 3
10762f08720SJoerg Sonnenbergerto determine which occurred.
10862f08720SJoerg Sonnenberger.Sh ERRORS
1090d5acd74SJohn MarinoThe
1100d5acd74SJohn Marino.Fn fgetws
111*3623cebdSSascha Wildnerand
112*3623cebdSSascha Wildner.Fn fgetws_l
113*3623cebdSSascha Wildnerfunctions will fail if:
11462f08720SJoerg Sonnenberger.Bl -tag -width Er
11562f08720SJoerg Sonnenberger.It Bq Er EBADF
11662f08720SJoerg SonnenbergerThe given
11762f08720SJoerg Sonnenberger.Fa fp
11862f08720SJoerg Sonnenbergerargument is not a readable stream.
11962f08720SJoerg Sonnenberger.It Bq Er EILSEQ
12062f08720SJoerg SonnenbergerThe data obtained from the input stream does not form a valid
12162f08720SJoerg Sonnenbergermultibyte character.
12262f08720SJoerg Sonnenberger.El
12362f08720SJoerg Sonnenberger.Pp
124*3623cebdSSascha WildnerThe functions
12562f08720SJoerg Sonnenberger.Fn fgetws
126*3623cebdSSascha Wildnerand
127*3623cebdSSascha Wildner.Fn fgetws_l
12862f08720SJoerg Sonnenbergermay also fail and set
12962f08720SJoerg Sonnenberger.Va errno
13062f08720SJoerg Sonnenbergerfor any of the errors specified for the routines
13162f08720SJoerg Sonnenberger.Xr fflush 3 ,
13262f08720SJoerg Sonnenberger.Xr fstat 2 ,
13362f08720SJoerg Sonnenberger.Xr read 2 ,
13462f08720SJoerg Sonnenbergeror
13562f08720SJoerg Sonnenberger.Xr malloc 3 .
13662f08720SJoerg Sonnenberger.Sh SEE ALSO
13762f08720SJoerg Sonnenberger.Xr feof 3 ,
13862f08720SJoerg Sonnenberger.Xr ferror 3 ,
139*3623cebdSSascha Wildner.Xr fgets 3 ,
140*3623cebdSSascha Wildner.Xr xlocale 3
14162f08720SJoerg Sonnenberger.Sh STANDARDS
14262f08720SJoerg SonnenbergerThe
14362f08720SJoerg Sonnenberger.Fn fgetws
14462f08720SJoerg Sonnenbergerfunction
14562f08720SJoerg Sonnenbergerconforms to
14662f08720SJoerg Sonnenberger.St -p1003.1-2001 .
147