*stdin*, *stdout* and *stderr* specify the executed program's standard input,
standard output and standard error file handles, respectively. Valid values
- are :data:`PIPE`, an existing file descriptor (a positive integer), an
- existing file object, and ``None``. :data:`PIPE` indicates that a new pipe
- to the child should be created. With the default settings of ``None``, no
- redirection will occur; the child's file handles will be inherited from the
- parent. Additionally, *stderr* can be :data:`STDOUT`, which indicates that
- the stderr data from the child process should be captured into the same file
- handle as for stdout.
+ are :data:`PIPE`, :data:`DEVNULL`, an existing file descriptor (a positive
+ integer), an existing file object, and ``None``. :data:`PIPE` indicates
+ that a new pipe to the child should be created. :data:`DEVNULL` indicates
+ that the special file :data:`os.devnull` will be used. With the default
+ settings of ``None``, no redirection will occur; the child's file handles
+ will be inherited from the parent. Additionally, *stderr* can be
+ :data:`STDOUT`, which indicates that the stderr data from the child
+ process should be captured into the same file handle as for *stdout*.
+ .. index::
+ single: universal newlines; subprocess module
+
If *universal_newlines* is ``True``, the file objects *stdin*, *stdout*
- and *stderr* will be opened as text streams with universal newlines support,
- using the encoding returned by :func:`locale.getpreferredencoding`.
+ and *stderr* will be opened as text streams in :term:`universal newlines`
+ mode using the encoding returned by :func:`locale.getpreferredencoding`.
For *stdin*, line ending characters ``'\n'`` in the input will be converted
to the default line separator :data:`os.linesep`. For *stdout* and
*stderr*, all line endings in the output will be converted to ``'\n'``.