1a02120c4SAndy Fiddaman.\" 2a02120c4SAndy Fiddaman.\" This file and its contents are supplied under the terms of the 3a02120c4SAndy Fiddaman.\" Common Development and Distribution License ("CDDL"), version 1.0. 4a02120c4SAndy Fiddaman.\" You may only use this file in accordance with the terms of version 5a02120c4SAndy Fiddaman.\" 1.0 of the CDDL. 6a02120c4SAndy Fiddaman.\" 7a02120c4SAndy Fiddaman.\" A full copy of the text of the CDDL should have accompanied this 8a02120c4SAndy Fiddaman.\" source. A copy of the CDDL is also available via the Internet at 9a02120c4SAndy Fiddaman.\" http://www.illumos.org/license/CDDL. 10a02120c4SAndy Fiddaman.\" 11a02120c4SAndy Fiddaman.\" 12a02120c4SAndy Fiddaman.\" Copyright 2020 OmniOS Community Edition (OmniOSce) Association. 13a02120c4SAndy Fiddaman.\" 148bd53a1cSAndy Fiddaman.Dd January 29, 2020 15a02120c4SAndy Fiddaman.Dt PROC_GET_FDINFO 3PROC 16a02120c4SAndy Fiddaman.Os 17a02120c4SAndy Fiddaman.Sh NAME 18a02120c4SAndy Fiddaman.Nm proc_get_fdinfo , 19a02120c4SAndy Fiddaman.Nm proc_fdinfo_free 20a02120c4SAndy Fiddaman.Nd get process file descriptor information 21a02120c4SAndy Fiddaman.Sh LIBRARY 22a02120c4SAndy Fiddaman.Lb libproc 23a02120c4SAndy Fiddaman.Sh SYNOPSIS 24a02120c4SAndy Fiddaman.In libproc.h 25a02120c4SAndy Fiddaman.Ft prfdinfo_t * 26a02120c4SAndy Fiddaman.Fo proc_get_fdinfo 27a02120c4SAndy Fiddaman.Fa "pid_t pid" 28a02120c4SAndy Fiddaman.Fa "int fd" 29a02120c4SAndy Fiddaman.Fc 30a02120c4SAndy Fiddaman.Ft "void" 31a02120c4SAndy Fiddaman.Fo proc_fdinfo_free 32a02120c4SAndy Fiddaman.Fa "prfdinfo_t *info" 33a02120c4SAndy Fiddaman.Fc 34a02120c4SAndy Fiddaman.Sh DESCRIPTION 35a02120c4SAndy FiddamanThe 36a02120c4SAndy Fiddaman.Fn proc_get_fdinfo 37a02120c4SAndy Fiddamanfunction is a convenient way to read the 38a02120c4SAndy Fiddaman.Pa /proc/pid/fdinfo/fd 39a02120c4SAndy Fiddamanfile for the process 40a02120c4SAndy Fiddaman.Fa pid 41a02120c4SAndy Fiddamanand file descriptor 42a02120c4SAndy Fiddaman.Fa fd . 43a02120c4SAndy FiddamanOn success, the return value of the function is a pointer to a properly 44a02120c4SAndy Fiddamanterminated 45a02120c4SAndy Fiddaman.Sy prfdinfo_t 46a02120c4SAndy Fiddamanstructure. 47a02120c4SAndy Fiddaman.Pp 48a02120c4SAndy FiddamanThe definition of the 49a02120c4SAndy Fiddaman.Vt prfdinfo_t 50a02120c4SAndy Fiddamanstructure may be found in 51*bbf21555SRichard Lowe.Xr proc 5 . 52a02120c4SAndy Fiddaman.Pp 53a02120c4SAndy FiddamanThe caller must free the returned memory by calling the 54a02120c4SAndy Fiddaman.Fn proc_fdinfo_free 55a02120c4SAndy Fiddamanfunction. 56a02120c4SAndy Fiddaman.Pp 57a02120c4SAndy FiddamanThe 58a02120c4SAndy Fiddaman.Fn proc_fdinfo_free 59a02120c4SAndy Fiddamanfrees all memory associated with the 60a02120c4SAndy Fiddaman.Vt prfdinfo_t 61a02120c4SAndy Fiddamanstructure passed as 62a02120c4SAndy Fiddaman.Fa info . 63a02120c4SAndy Fiddaman.Sh RETURN VALUES 64a02120c4SAndy FiddamanUpon successful completion, the 65a02120c4SAndy Fiddaman.Fn proc_get_fdinfo 66a02120c4SAndy Fiddamanfunction returns a pointer to an allocated 67a02120c4SAndy Fiddaman.Vt prfdinfo_t 68a02120c4SAndy Fiddamanstructure. 69a02120c4SAndy FiddamanOtherwise, 70a02120c4SAndy Fiddaman.Dv NULL 71a02120c4SAndy Fiddamanis returned to indicate an error occurred and 72a02120c4SAndy Fiddaman.Vt errno 73a02120c4SAndy Fiddamanis set to indicate the error. 74a02120c4SAndy Fiddaman.Sh ERRORS 75a02120c4SAndy FiddamanIn addition to the errors listed below, the 76a02120c4SAndy Fiddaman.Fn proc_get_fdinfo 77a02120c4SAndy Fiddamanfunction may fail for the same reasons as the 78a02120c4SAndy Fiddaman.Xr fstat 2 , 798bd53a1cSAndy Fiddaman.Xr lseek 2 , 80a02120c4SAndy Fiddaman.Xr malloc 3C , 81a02120c4SAndy Fiddaman.Xr open 2 , 82a02120c4SAndy Fiddamanand 83a02120c4SAndy Fiddaman.Xr read 2 84a02120c4SAndy Fiddamanfunctions. 85a02120c4SAndy FiddamanThe 86a02120c4SAndy Fiddaman.Fn proc_get_fdinfo 87a02120c4SAndy Fiddamanfunction will fail if: 88a02120c4SAndy Fiddaman.Bl -tag -width Er 89a02120c4SAndy Fiddaman.It Er EIO 90a02120c4SAndy FiddamanThe data read from the file under 91a02120c4SAndy Fiddaman.Pa /proc 92a02120c4SAndy Fiddamanis not properly terminated. 93a02120c4SAndy Fiddaman.El 94a02120c4SAndy Fiddaman.Sh INTERFACE STABILITY 95a02120c4SAndy Fiddaman.Sy Uncommitted 96a02120c4SAndy Fiddaman.Sh MT-LEVEL 97a02120c4SAndy Fiddaman.Sy MT-Safe 98a02120c4SAndy Fiddaman.Sh SEE ALSO 99a02120c4SAndy Fiddaman.Xr libproc 3LIB , 100*bbf21555SRichard Lowe.Xr proc 5 101