.\" Copyright (c) 1993 Michael Haardt (michael@moria.de),
.\"     Fri Apr  2 11:32:09 MET DST 1993
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
.\" Modified Sat Jul 24 17:00:12 1993 by Rik Faith (faith@cs.unc.edu)
.TH NULL 4 2015-07-23 "Linux" "Linux Programmer's Manual"
.SH NAME
null, zero \- data sink
.SH DESCRIPTION
Data written to the
.IR /dev/null
and
.IR /dev/zero
special files is discarded.
.PP
Reads from
.IR /dev/null
always return end of file (i.e.,
.BR read (2)
returns 0), whereas reads from
.IR /dev/zero
always return bytes containing zero (\(aq\e0\(aq characters).
.LP
These devices are typically created by:
.RS
.sp
mknod \-m 666 /dev/null c 1 3
.br
mknod \-m 666 /dev/zero c 1 5
.br
chown root:root /dev/null /dev/zero
.RE
.SH FILES
.I /dev/null
.br
.I /dev/zero
.SH NOTES
If these devices are not writable and readable for all users, many
programs will act strangely.

Since Linux 2.6.31,
.\" commit 2b83868723d090078ac0e2120e06a1cc94dbaef0
reads from
.IR /dev/zero
are interruptible by signals.
(This change was made to help with bad latencies for large reads from
.IR /dev/zero .)
.SH SEE ALSO
.BR chown (1),
.BR mknod (1),
.BR full (4)
