summaryrefslogtreecommitdiffstats
path: root/man/man5/proc_pid_environ.5
diff options
context:
space:
mode:
Diffstat (limited to 'man/man5/proc_pid_environ.5')
-rw-r--r--man/man5/proc_pid_environ.548
1 files changed, 48 insertions, 0 deletions
diff --git a/man/man5/proc_pid_environ.5 b/man/man5/proc_pid_environ.5
new file mode 100644
index 000000000..0ff8d4829
--- /dev/null
+++ b/man/man5/proc_pid_environ.5
@@ -0,0 +1,48 @@
+.\" Copyright (C) 1994, 1995, Daniel Quinlan <quinlan@yggdrasil.com>
+.\" Copyright (C) 2002-2008, 2017, Michael Kerrisk <mtk.manpages@gmail.com>
+.\" Copyright (C) 2023, Alejandro Colomar <alx@kernel.org>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0-or-later
+.\"
+.TH proc_pid_environ 5 (date) "Linux man-pages (unreleased)"
+.SH NAME
+/proc/pid/environ \- initial environment
+.SH DESCRIPTION
+.TP
+.IR /proc/ pid /environ
+This file contains the initial environment that was set
+when the currently executing program was started via
+.BR execve (2).
+The entries are separated by null bytes (\[aq]\e0\[aq]),
+and there may be a null byte at the end.
+Thus, to print out the environment of process 1, you would do:
+.IP
+.in +4n
+.EX
+.RB "$" " cat /proc/1/environ | tr \[aq]\e000\[aq] \[aq]\en\[aq]"
+.EE
+.in
+.IP
+If, after an
+.BR execve (2),
+the process modifies its environment
+(e.g., by calling functions such as
+.BR putenv (3)
+or modifying the
+.BR environ (7)
+variable directly),
+this file will
+.I not
+reflect those changes.
+.IP
+Furthermore, a process may change the memory location that this file refers via
+.BR prctl (2)
+operations such as
+.BR PR_SET_MM_ENV_START .
+.IP
+Permission to access this file is governed by a ptrace access mode
+.B PTRACE_MODE_READ_FSCREDS
+check; see
+.BR ptrace (2).
+.SH SEE ALSO
+.BR proc (5)