xref: /illumos-gate/usr/src/man/man3proc/proc_fdwalk.3proc (revision 7b34a9a5df26271af0da06974fc361c468cd48d3)
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 2020 OmniOS Community Edition (OmniOSce) Association.
13.\"
14.Dd January 6, 2020
15.Dt PROC_FDWALK 3PROC
16.Os
17.Sh NAME
18.Nm proc_fdwalk
19.Nd walk the open file descriptors for a process
20.Sh SYNOPSIS
21.Lb libproc
22.In libproc.h
23.Ft int
24.Fo proc_fdwalk
25.Fa "pid_t pid"
26.Fa "proc_fdwalk_f *func"
27.Fa "void *arg"
28.Fc
29.Sh DESCRIPTION
30The
31.Fn proc_fdwalk
32function walks all file descriptors currently open in the process with ID
33.Fa pid
34and calls the callback function
35.Fa func
36once for each file descriptor with the user-specified
37.Fa arg .
38The definition of
39.Vt proc_fdwalk_f
40is available in
41.Xr libproc 3LIB .
42.Pp
43.Fa func
44will be called once for each file descriptor and will have its first
45argument filled in with the contents of the corresponding
46.Pa /proc
47.Sy fdinfo
48file for the file descriptor.
49.Pp
50The return value of the caller's
51.Fa func
52function determines whether or not iteration will continue.
53If
54.Fa func
55returns a non-zero value, then iteration will terminate and that
56return value will be returned to the caller.
57To distinguish between system errors and caller errors, it is recommended that
58the function only return positive integers in the event of an error.
59.Sh RETURN VALUES
60Upon successful completion, the
61.Fn proc_fdwalk
62function returns
63.Sy 0 .
64Otherwise,
65.Sy -1
66is returned and
67.Sy errno
68is updated to reflect the error that occurred.
69.Sh ERRORS
70In addition to the errors listed below, the
71.Fn proc_fdwalk
72function may fail for the same reasons as the
73.Xr opendir 3C ,
74.Xr readdir 3C ,
75and
76.Xr malloc 3C
77functions.
78.Sh INTERFACE STABILITY
79.Sy Uncommitted
80.Sh MT-LEVEL
81.Sy MT-Safe
82.Sh SEE ALSO
83.Xr malloc 3C ,
84.Xr opendir 3C ,
85.Xr readdir 3C ,
86.Xr libproc 3LIB ,
87.Xr proc 4
88