xref: /freebsd/contrib/openpam/doc/man/openpam_readlinev.3 (revision 2f3ed61901142025bf8b99c3bda7b38dd74b09a8)
1*2f3ed619SDag-Erling Smørgrav.\"-
2*2f3ed619SDag-Erling Smørgrav.\" Copyright (c) 2001-2003 Networks Associates Technology, Inc.
3*2f3ed619SDag-Erling Smørgrav.\" Copyright (c) 2004-2011 Dag-Erling Smørgrav
4*2f3ed619SDag-Erling Smørgrav.\" All rights reserved.
5*2f3ed619SDag-Erling Smørgrav.\"
6*2f3ed619SDag-Erling Smørgrav.\" This software was developed for the FreeBSD Project by ThinkSec AS and
7*2f3ed619SDag-Erling Smørgrav.\" Network Associates Laboratories, the Security Research Division of
8*2f3ed619SDag-Erling Smørgrav.\" Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035
9*2f3ed619SDag-Erling Smørgrav.\" ("CBOSS"), as part of the DARPA CHATS research program.
10*2f3ed619SDag-Erling Smørgrav.\"
11*2f3ed619SDag-Erling Smørgrav.\" Redistribution and use in source and binary forms, with or without
12*2f3ed619SDag-Erling Smørgrav.\" modification, are permitted provided that the following conditions
13*2f3ed619SDag-Erling Smørgrav.\" are met:
14*2f3ed619SDag-Erling Smørgrav.\" 1. Redistributions of source code must retain the above copyright
15*2f3ed619SDag-Erling Smørgrav.\"    notice, this list of conditions and the following disclaimer.
16*2f3ed619SDag-Erling Smørgrav.\" 2. Redistributions in binary form must reproduce the above copyright
17*2f3ed619SDag-Erling Smørgrav.\"    notice, this list of conditions and the following disclaimer in the
18*2f3ed619SDag-Erling Smørgrav.\"    documentation and/or other materials provided with the distribution.
19*2f3ed619SDag-Erling Smørgrav.\" 3. The name of the author may not be used to endorse or promote
20*2f3ed619SDag-Erling Smørgrav.\"    products derived from this software without specific prior written
21*2f3ed619SDag-Erling Smørgrav.\"    permission.
22*2f3ed619SDag-Erling Smørgrav.\"
23*2f3ed619SDag-Erling Smørgrav.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
24*2f3ed619SDag-Erling Smørgrav.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25*2f3ed619SDag-Erling Smørgrav.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26*2f3ed619SDag-Erling Smørgrav.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
27*2f3ed619SDag-Erling Smørgrav.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28*2f3ed619SDag-Erling Smørgrav.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29*2f3ed619SDag-Erling Smørgrav.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30*2f3ed619SDag-Erling Smørgrav.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31*2f3ed619SDag-Erling Smørgrav.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32*2f3ed619SDag-Erling Smørgrav.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33*2f3ed619SDag-Erling Smørgrav.\" SUCH DAMAGE.
34*2f3ed619SDag-Erling Smørgrav.\"
35*2f3ed619SDag-Erling Smørgrav.\" $Id$
36*2f3ed619SDag-Erling Smørgrav.\"
37*2f3ed619SDag-Erling Smørgrav.Dd May 26, 2012
38*2f3ed619SDag-Erling Smørgrav.Dt OPENPAM_READLINEV 3
39*2f3ed619SDag-Erling Smørgrav.Os
40*2f3ed619SDag-Erling Smørgrav.Sh NAME
41*2f3ed619SDag-Erling Smørgrav.Nm openpam_readlinev
42*2f3ed619SDag-Erling Smørgrav.Nd read a line from a file and split it into words
43*2f3ed619SDag-Erling Smørgrav.Sh LIBRARY
44*2f3ed619SDag-Erling Smørgrav.Lb libpam
45*2f3ed619SDag-Erling Smørgrav.Sh SYNOPSIS
46*2f3ed619SDag-Erling Smørgrav.In sys/types.h
47*2f3ed619SDag-Erling Smørgrav.In stdio.h
48*2f3ed619SDag-Erling Smørgrav.In security/pam_appl.h
49*2f3ed619SDag-Erling Smørgrav.In security/openpam.h
50*2f3ed619SDag-Erling Smørgrav.Ft "char **"
51*2f3ed619SDag-Erling Smørgrav.Fn openpam_readlinev "FILE *f" "int *lineno" "int *lenp"
52*2f3ed619SDag-Erling Smørgrav.Sh DESCRIPTION
53*2f3ed619SDag-Erling SmørgravThe
54*2f3ed619SDag-Erling Smørgrav.Fn openpam_readlinev
55*2f3ed619SDag-Erling Smørgravfunction reads a line from a file, splits it
56*2f3ed619SDag-Erling Smørgravinto words according to the rules described in the
57*2f3ed619SDag-Erling Smørgrav.Xr openpam_readword 3
58*2f3ed619SDag-Erling Smørgravmanual page, and returns a list of those words.
59*2f3ed619SDag-Erling Smørgrav.Pp
60*2f3ed619SDag-Erling SmørgravIf
61*2f3ed619SDag-Erling Smørgrav.Fa lineno
62*2f3ed619SDag-Erling Smørgravis not
63*2f3ed619SDag-Erling Smørgrav.Dv NULL ,
64*2f3ed619SDag-Erling Smørgravthe integer variable it points to is
65*2f3ed619SDag-Erling Smørgravincremented every time a newline character is read.
66*2f3ed619SDag-Erling SmørgravThis includes quoted or escaped newline characters and the newline
67*2f3ed619SDag-Erling Smørgravcharacter at the end of the line.
68*2f3ed619SDag-Erling Smørgrav.Pp
69*2f3ed619SDag-Erling SmørgravIf
70*2f3ed619SDag-Erling Smørgrav.Fa lenp
71*2f3ed619SDag-Erling Smørgravis not
72*2f3ed619SDag-Erling Smørgrav.Dv NULL ,
73*2f3ed619SDag-Erling Smørgravthe number of words on the line is stored in the
74*2f3ed619SDag-Erling Smørgravvariable to which it points.
75*2f3ed619SDag-Erling Smørgrav.Sh RETURN VALUES
76*2f3ed619SDag-Erling SmørgravIf successful, the
77*2f3ed619SDag-Erling Smørgrav.Fn openpam_readlinev
78*2f3ed619SDag-Erling Smørgravfunction returns a pointer to a
79*2f3ed619SDag-Erling Smørgravdynamically allocated array of pointers to individual dynamically
80*2f3ed619SDag-Erling Smørgravallocated NUL-terminated strings, each containing a single word, in the
81*2f3ed619SDag-Erling Smørgravorder in which they were encountered on the line.
82*2f3ed619SDag-Erling SmørgravThe array is terminated by a
83*2f3ed619SDag-Erling Smørgrav.Dv NULL
84*2f3ed619SDag-Erling Smørgravpointer.
85*2f3ed619SDag-Erling Smørgrav.Pp
86*2f3ed619SDag-Erling SmørgravThe caller is responsible for freeing both the array and the individual
87*2f3ed619SDag-Erling Smørgravstrings by passing each of them to
88*2f3ed619SDag-Erling Smørgrav.Xr free 3 .
89*2f3ed619SDag-Erling Smørgrav.Pp
90*2f3ed619SDag-Erling SmørgravIf the end of the line was reached before any words were read,
91*2f3ed619SDag-Erling Smørgrav.Fn openpam_readlinev
92*2f3ed619SDag-Erling Smørgravreturns a pointer to a dynamically allocated array
93*2f3ed619SDag-Erling Smørgravcontaining a single
94*2f3ed619SDag-Erling Smørgrav.Dv NULL
95*2f3ed619SDag-Erling Smørgravpointer.
96*2f3ed619SDag-Erling Smørgrav.Pp
97*2f3ed619SDag-Erling SmørgravThe
98*2f3ed619SDag-Erling Smørgrav.Fn openpam_readlinev
99*2f3ed619SDag-Erling Smørgravfunction can fail and return
100*2f3ed619SDag-Erling Smørgrav.Dv NULL
101*2f3ed619SDag-Erling Smørgravfor one of
102*2f3ed619SDag-Erling Smørgravfour reasons:
103*2f3ed619SDag-Erling Smørgrav.Bl -bullet
104*2f3ed619SDag-Erling Smørgrav.It
105*2f3ed619SDag-Erling SmørgravThe end of the file was reached before any words were read;
106*2f3ed619SDag-Erling Smørgrav.Va errno
107*2f3ed619SDag-Erling Smørgravis
108*2f3ed619SDag-Erling Smørgravzero,
109*2f3ed619SDag-Erling Smørgrav.Xr ferror 3
110*2f3ed619SDag-Erling Smørgravreturns zero, and
111*2f3ed619SDag-Erling Smørgrav.Xr feof 3
112*2f3ed619SDag-Erling Smørgravreturns a non-zero value.
113*2f3ed619SDag-Erling Smørgrav.It
114*2f3ed619SDag-Erling SmørgravThe end of the file was reached while a quote or backslash escape
115*2f3ed619SDag-Erling Smørgravwas in effect;
116*2f3ed619SDag-Erling Smørgrav.Va errno
117*2f3ed619SDag-Erling Smørgravis set to
118*2f3ed619SDag-Erling Smørgrav.Dv EINVAL ,
119*2f3ed619SDag-Erling Smørgrav.Xr ferror 3
120*2f3ed619SDag-Erling Smørgravreturns zero, and
121*2f3ed619SDag-Erling Smørgrav.Xr feof 3
122*2f3ed619SDag-Erling Smørgravreturns a non-zero value.
123*2f3ed619SDag-Erling Smørgrav.It
124*2f3ed619SDag-Erling SmørgravAn error occurred while reading from the file;
125*2f3ed619SDag-Erling Smørgrav.Va errno
126*2f3ed619SDag-Erling Smørgravis non-zero,
127*2f3ed619SDag-Erling Smørgrav.Xr ferror 3
128*2f3ed619SDag-Erling Smørgravreturns a non-zero value and
129*2f3ed619SDag-Erling Smørgrav.Xr feof 3
130*2f3ed619SDag-Erling Smørgravreturns zero.
131*2f3ed619SDag-Erling Smørgrav.It
132*2f3ed619SDag-Erling SmørgravA
133*2f3ed619SDag-Erling Smørgrav.Xr malloc 3
134*2f3ed619SDag-Erling Smørgravor
135*2f3ed619SDag-Erling Smørgrav.Xr realloc 3
136*2f3ed619SDag-Erling Smørgravcall failed;
137*2f3ed619SDag-Erling Smørgrav.Va errno
138*2f3ed619SDag-Erling Smørgravis set to
139*2f3ed619SDag-Erling Smørgrav.Dv ENOMEM ,
140*2f3ed619SDag-Erling Smørgrav.Xr ferror 3
141*2f3ed619SDag-Erling Smørgravreturns a non-zero value, and
142*2f3ed619SDag-Erling Smørgrav.Xr feof 3
143*2f3ed619SDag-Erling Smørgravmay or may not return
144*2f3ed619SDag-Erling Smørgrava non-zero value.
145*2f3ed619SDag-Erling Smørgrav.El
146*2f3ed619SDag-Erling Smørgrav.Sh SEE ALSO
147*2f3ed619SDag-Erling Smørgrav.Xr openpam_readline 3 ,
148*2f3ed619SDag-Erling Smørgrav.Xr openpam_readword 3 ,
149*2f3ed619SDag-Erling Smørgrav.Xr pam 3
150*2f3ed619SDag-Erling Smørgrav.Sh STANDARDS
151*2f3ed619SDag-Erling SmørgravThe
152*2f3ed619SDag-Erling Smørgrav.Fn openpam_readlinev
153*2f3ed619SDag-Erling Smørgravfunction is an OpenPAM extension.
154*2f3ed619SDag-Erling Smørgrav.Sh AUTHORS
155*2f3ed619SDag-Erling SmørgravThe
156*2f3ed619SDag-Erling Smørgrav.Fn openpam_readlinev
157*2f3ed619SDag-Erling Smørgravfunction and this manual page were
158*2f3ed619SDag-Erling Smørgravdeveloped by
159*2f3ed619SDag-Erling Smørgrav.An Dag-Erling Sm\(/orgrav Aq des@des.no .
160