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 March 2, 2017
  15 .Dt PENV_ITER 3PROC
  16 .Os
  17 .Sh NAME
  18 .Nm Penv_iter
  19 .Nd iterate process environment
  20 .Sh SYNOPSIS
  21 .Lb libproc
  22 .In libproc.h
  23 .Ft int
  24 .Fo Penv_iter
  25 .Fa "struct ps_prochandle *P"
  26 .Fa "proc_env_f *func"
  27 .Fa "void *data"
  28 .Fc
  29 .Sh DESCRIPTION
  30 The
  31 .Fn Penv_iter
  32 function iterates over the environment of the process represented by
  33 .Fa P .
  34 For each environment variable,
  35 .Fa func
  36 is passed the caller argument
  37 .Fa data
  38 along with the address of the environment variable and the key-value pair.
  39 For the full signature of the
  40 .Ft proc_env_f
  41 callback, see
  42 .Xr libproc 3LIB .
  43 .Pp
  44 The callback's return value controls whether or not iteration proceeds.
  45 If
  46 .Fa func
  47 returns zero, then iteration continues.
  48 Otherwise, iteration is terminated and the value is returned.
  49 It is recommended that callback functions do not return
  50 .Sy -1
  51 so as to distinguish between the failure of the
  52 .Fn Penv_iter
  53 function and the callback function.
  54 .Sh RETURN VALUES
  55 Upon successful completion, the
  56 .Fn Penv_iter
  57 function returns
  58 .Sy 0 .
  59 Otherwise, if there was an internal error, for example due to a
  60 corrupted environment, then
  61 .Sy -1
  62 is returned.
  63 Otherwise, if the callback function
  64 .Fa func
  65 returns non-zero, then its return value will be returned instead.
  66 .Sh INTERFACE STABILITY
  67 .Sy Uncommitted
  68 .Sh MT-LEVEL
  69 See
  70 .Sy LOCKING
  71 in
  72 .Xr libproc 3LIB .
  73 .Sh SEE ALSO
  74 .Xr libproc 3LIB