1.\"
2.\" This file and its contents are supplied under the terms of the
3.\" Common Development and Distribution License ("CDDL"), version 1.0.
4.\" You may only use this file in accordance with the terms of version
5.\" 1.0 of the CDDL.
6.\"
7.\" A full copy of the text of the CDDL should have accompanied this
8.\" source.  A copy of the CDDL is also available via the Internet at
9.\" http://www.illumos.org/license/CDDL.
10.\"
11.\"
12.\" Copyright 2015 Joyent, Inc.
13.\"
14.Dd May 11, 2016
15.Dt PFDINFO_ITER 3PROC
16.Os
17.Sh NAME
18.Nm Pfdinfo_iter
19.Nd iterate open files in a process
20.Sh LIBRARY
21.Lb libproc
22.Sh SYNOPSIS
23.In libproc.h
24.Ft int
25.Fo Pfdinfo_iter
26.Fa "struct ps_prochandle *P"
27.Fa "proc_fdinfo_f *func"
28.Fa "void *data"
29.Fc
30.Sh DESCRIPTION
31The
32.Fn Pfdinfo_iter
33function iterates over the open files in the process represented by
34.Fa P .
35.Pp
36For each open file, the callback function
37.Fa func
38will be invoked and it will be passed the
39.Fa data
40argument as well as a pointer to a
41.Sy prfdinfo_t
42structure defined in
43.Xr libproc 3LIB .
44For the full signature of the
45.Vt proc_fdinfo_f
46see
47.Xr libproc 3LIB .
48.Pp
49The return value of
50.Fa func
51controls whether or not iteration continues.
52If
53.Fa func
54returns
55.Sy 0 ,
56then iteration will continue.
57However, if
58.Fa func
59instead returns a non-zero value, then iteration will halt and that
60value will be used as the return value of the
61.Fn Pfdinfo_iter
62function.
63Because the
64.Fn Pfdinfo_iter
65function returns
66.Sy -1
67to an indicate its own errors, it is recommended that the callback
68function does not return
69.Sy -1
70to indicate an error so that the caller may distinguish between the
71failure of the callback function and the failure of the
72.Fn Pfdinfo_iter
73function.
74.Sh RETURN VALUES
75Upon successful completion, the
76.Fn Pfdinfo_iter
77returns
78.Sy 0 .
79Otherwise, if there was an internal error then
80.Sy -1
81is returned.
82Otherwise, if the callback function
83.Fa func
84returns non-zero, then its return value will be returned instead.
85.Sh INTERFACE STABILITY
86.Sy Uncommitted
87.Sh MT-LEVEL
88See
89.Sy LOCKING
90in
91.Xr libproc 3LIB .
92.Sh SEE ALSO
93.Xr libproc 3LIB
94