110b5fe87SSascha Wildner.\" Generated from openpam_readlinev.c by gendoc.pl 210b5fe87SSascha Wildner.\" $OpenPAM: openpam_readlinev.c 938 2017-04-30 21:34:42Z des $ 3*4c84ab30SSascha Wildner.Dd February 24, 2019 4577efdeeSPeter Avalos.Dt OPENPAM_READLINEV 3 5577efdeeSPeter Avalos.Os 6577efdeeSPeter Avalos.Sh NAME 7577efdeeSPeter Avalos.Nm openpam_readlinev 8577efdeeSPeter Avalos.Nd read a line from a file and split it into words 9577efdeeSPeter Avalos.Sh SYNOPSIS 10577efdeeSPeter Avalos.In sys/types.h 11577efdeeSPeter Avalos.In stdio.h 12577efdeeSPeter Avalos.In security/pam_appl.h 13577efdeeSPeter Avalos.In security/openpam.h 14577efdeeSPeter Avalos.Ft "char **" 15577efdeeSPeter Avalos.Fn openpam_readlinev "FILE *f" "int *lineno" "int *lenp" 16577efdeeSPeter Avalos.Sh DESCRIPTION 17577efdeeSPeter AvalosThe 18577efdeeSPeter Avalos.Fn openpam_readlinev 19577efdeeSPeter Avalosfunction reads a line from a file, splits it 20577efdeeSPeter Avalosinto words according to the rules described in the 21577efdeeSPeter Avalos.Xr openpam_readword 3 22577efdeeSPeter Avalosmanual page, and returns a list of those words. 23577efdeeSPeter Avalos.Pp 24577efdeeSPeter AvalosIf 25577efdeeSPeter Avalos.Fa lineno 26577efdeeSPeter Avalosis not 27577efdeeSPeter Avalos.Dv NULL , 28577efdeeSPeter Avalosthe integer variable it points to is 29577efdeeSPeter Avalosincremented every time a newline character is read. 30577efdeeSPeter AvalosThis includes quoted or escaped newline characters and the newline 31577efdeeSPeter Avaloscharacter at the end of the line. 32577efdeeSPeter Avalos.Pp 33577efdeeSPeter AvalosIf 34577efdeeSPeter Avalos.Fa lenp 35577efdeeSPeter Avalosis not 36577efdeeSPeter Avalos.Dv NULL , 37577efdeeSPeter Avalosthe number of words on the line is stored in the 38577efdeeSPeter Avalosvariable to which it points. 39577efdeeSPeter Avalos.Sh RETURN VALUES 40577efdeeSPeter AvalosIf successful, the 41577efdeeSPeter Avalos.Fn openpam_readlinev 42577efdeeSPeter Avalosfunction returns a pointer to a 43577efdeeSPeter Avalosdynamically allocated array of pointers to individual dynamically 44577efdeeSPeter Avalosallocated NUL-terminated strings, each containing a single word, in the 45577efdeeSPeter Avalosorder in which they were encountered on the line. 46577efdeeSPeter AvalosThe array is terminated by a 47577efdeeSPeter Avalos.Dv NULL 48577efdeeSPeter Avalospointer. 49577efdeeSPeter Avalos.Pp 50577efdeeSPeter AvalosThe caller is responsible for freeing both the array and the individual 51577efdeeSPeter Avalosstrings by passing each of them to 52577efdeeSPeter Avalos.Xr free 3 . 53577efdeeSPeter Avalos.Pp 54577efdeeSPeter AvalosIf the end of the line was reached before any words were read, 55577efdeeSPeter Avalos.Fn openpam_readlinev 56577efdeeSPeter Avalosreturns a pointer to a dynamically allocated array 57577efdeeSPeter Avaloscontaining a single 58577efdeeSPeter Avalos.Dv NULL 59577efdeeSPeter Avalospointer. 60577efdeeSPeter Avalos.Pp 61577efdeeSPeter AvalosThe 62577efdeeSPeter Avalos.Fn openpam_readlinev 63577efdeeSPeter Avalosfunction can fail and return 64577efdeeSPeter Avalos.Dv NULL 65577efdeeSPeter Avalosfor one of 66577efdeeSPeter Avalosfour reasons: 67577efdeeSPeter Avalos.Bl -bullet 68577efdeeSPeter Avalos.It 69577efdeeSPeter AvalosThe end of the file was reached before any words were read; 70577efdeeSPeter Avalos.Va errno 71577efdeeSPeter Avalosis 72577efdeeSPeter Avaloszero, 73577efdeeSPeter Avalos.Xr ferror 3 74577efdeeSPeter Avalosreturns zero, and 75577efdeeSPeter Avalos.Xr feof 3 76577efdeeSPeter Avalosreturns a non-zero value. 77577efdeeSPeter Avalos.It 78577efdeeSPeter AvalosThe end of the file was reached while a quote or backslash escape 79577efdeeSPeter Avaloswas in effect; 80577efdeeSPeter Avalos.Va errno 81577efdeeSPeter Avalosis set to 82577efdeeSPeter Avalos.Dv EINVAL , 83577efdeeSPeter Avalos.Xr ferror 3 84577efdeeSPeter Avalosreturns zero, and 85577efdeeSPeter Avalos.Xr feof 3 86577efdeeSPeter Avalosreturns a non-zero value. 87577efdeeSPeter Avalos.It 88577efdeeSPeter AvalosAn error occurred while reading from the file; 89577efdeeSPeter Avalos.Va errno 90577efdeeSPeter Avalosis non-zero, 91577efdeeSPeter Avalos.Xr ferror 3 92577efdeeSPeter Avalosreturns a non-zero value and 93577efdeeSPeter Avalos.Xr feof 3 94577efdeeSPeter Avalosreturns zero. 95577efdeeSPeter Avalos.It 96577efdeeSPeter AvalosA 97577efdeeSPeter Avalos.Xr malloc 3 98577efdeeSPeter Avalosor 99577efdeeSPeter Avalos.Xr realloc 3 100577efdeeSPeter Avaloscall failed; 101577efdeeSPeter Avalos.Va errno 102577efdeeSPeter Avalosis set to 103577efdeeSPeter Avalos.Dv ENOMEM , 104577efdeeSPeter Avalos.Xr ferror 3 105577efdeeSPeter Avalosreturns a non-zero value, and 106577efdeeSPeter Avalos.Xr feof 3 107577efdeeSPeter Avalosmay or may not return 108577efdeeSPeter Avalosa non-zero value. 109577efdeeSPeter Avalos.El 110577efdeeSPeter Avalos.Sh SEE ALSO 111577efdeeSPeter Avalos.Xr openpam_readline 3 , 112577efdeeSPeter Avalos.Xr openpam_readword 3 , 113577efdeeSPeter Avalos.Xr pam 3 114577efdeeSPeter Avalos.Sh STANDARDS 115577efdeeSPeter AvalosThe 116577efdeeSPeter Avalos.Fn openpam_readlinev 117577efdeeSPeter Avalosfunction is an OpenPAM extension. 118577efdeeSPeter Avalos.Sh AUTHORS 119577efdeeSPeter AvalosThe 120577efdeeSPeter Avalos.Fn openpam_readlinev 121577efdeeSPeter Avalosfunction and this manual page were 122577efdeeSPeter Avalosdeveloped by 12310b5fe87SSascha Wildner.An Dag-Erling Sm\(/orgrav Aq Mt des@des.no . 124