##
6.1.1 Process Parameters

These functions and data items provide information and operate on the current process and user.

`environ`
  A mapping object representing the string environment. For example, `environ['HOME']` is the pathname of your home directory (on some platforms), and is equivalent to `getenv("HOME")` in C.

  If the platform supports the `putenv()` function, this mapping may be used to modify the environment as well as query the environment. `putenv()` will be called automatically when the mapping is modified.

  If `putenv()` is not provided, this mapping may be passed to the appropriate process-creation functions to cause child processes to use a modified environment.

`chdir`(path)
`getcwd`()
  These functions are described in ``Files and Directories'' (section 6.1.4).

`ctermid`()
  Return the filename corresponding to the controlling terminal of the process. Availability: Unix.

`getegid`()
  Return the current process' effective group id. Availability: Unix.

`geteuid`()
  Return the current process' effective user id. Availability: Unix.

`getgid`()
  Return the current process' group id. Availability: Unix.

`getgroups`()
  Return list of supplemental group ids associated with the current process. Availability: Unix.

`getlogin`()
  Return the actual login name for the current process, even if there are multiple login names which map to the same user id. Availability: Unix.

`getpgrp`()
  Return the current process group id. Availability: Unix.

`getpid`()
  Return the current process id. Availability: Unix, Windows.

`getppid`()
  Return the parent's process id. Availability: Unix.

`getuid`()
  Return the current process' user id. Availability: Unix.

`getenv`(varname[, value])
  Return the value of the environment variable varname if it exists, or value if it doesn't. value defaults to `None`. Availability: most flavors of Unix, Windows.

`putenv`(varname, value)
  Set the environment variable named varname to the string value. Such changes to the environment affect subprocesses started with `os.system()`, `popen()` or `fork()` and `execv()`. Availability: most flavors of Unix, Windows.

  When `putenv()` is supported, assignments to items in `os.environ` are automatically translated into corresponding calls to `putenv()`; however, calls to `putenv()` don't update `os.environ`, so it is actually preferable to assign to items of `os.environ`.

`setegid`(egid)
  Set the current process's effective group id. Availability: Unix.

`seteuid`(euid)
  Set the current process's effective user id. Availability: Unix.

`setgid`(gid)
  Set the current process' group id. Availability: Unix.

`setgroups`(groups)
  Set the list of supplemental group ids associated with the current process to groups. groups must be a sequence, and each element must be an integer identifying a group. This operation is typical available only to the superuser. Availability: Unix. New in version 2.2.

`setpgrp`()
  Calls the system call `setpgrp()` or `setpgrp(0, 0)` depending on which version is implemented (if any). See the Unix manual for the semantics. Availability: Unix.

`setpgid`(pid, pgrp)
  Calls the system call `setpgid()`. See the Unix manual for the semantics. Availability: Unix.

`setreuid`(ruid, euid)
  Set the current process's real and effective user ids. Availability: Unix.

`setregid`(rgid, egid)
  Set the current process's real and effective group ids. Availability: Unix.

`setsid`()
  Calls the system call `setsid()`. See the Unix manual for the semantics. Availability: Unix.

`setuid`(uid)
  Set the current process' user id. Availability: Unix.

`strerror`(code)
  Return the error message corresponding to the error code in code. Availability: Unix, Windows.

`umask`(mask)
  Set the current numeric umask and returns the previous umask. Availability: Unix, Windows.

`uname`()
  Return a 5-tuple containing information identifying the current operating system. The tuple contains 5 strings: `(sysname, nodename, release, version, machine)`. Some systems truncate the nodename to 8 characters or to the leading component; a better way to get the hostname is `socket.gethostname()` or even `socket.gethostbyaddr(socket.gethostname())`. Availability: recent flavors of Unix.