/dev/null

Unix系OSにおけるスペシャルファイル
Nullデバイスから転送)

/dev/nullnullデバイスとも呼ばれる)は、UNIXUnix系オペレーティングシステム (OS) におけるスペシャルファイルの1つで、そこに書き込まれたデータを全て捨て(writeシステムコールは成功する)、読み出してもどんなプロセスに対してもデータを返さない(EOFを返す)。

概要 編集

/dev/null は通常、プロセスの不要な出力ストリームを捨てるのに使うか、入力ストリームのための空のファイルとして使う。これは一般にリダイレクトによってなされる。プログラマ、特にUnix系のプログラマの間では、ビットバケツ (bit bucket)、あるいはブラックホール (black hole) などとも呼ばれる。

用途 編集

UNIXやUnix系OSのソフトウェアは、動作時に標準出力標準エラー出力に動作状況や、エラーや警告を伝えるメッセージを出力することがある。これらはデフォルトで画面に表示され、cronデーモンで自動的に実行された場合は出力されたメッセージ文がメールでユーザに送られたりする。シェルスクリプトなどにおいてもこれらのメッセージ出力が邪魔になることがある。ソフトウェアによっては、コマンドラインオプション等でこれらのメッセージを出力しないようにできるものもあるが、できないものもある。

そのような場合に、ソフトウェアが標準出力や標準エラー出力に出力するメッセージを /dev/null にリダイレクトするようにあらかじめ指定しておくと、これを回避できる。

他のOSにおける等価機能 編集

CP/M(および後のMS-DOSWindows)での同等のデバイスとして NUL:またはNULNULデバイス[1])がある。例えば、PAUSE>NULのように出力をNULに向けることで、ユーザーのキー押下を待ちうけつつ、画面には何も表示しないという使い方があった。Amigaでは、デバイス名はNIL:となっていた。Windows NTやその後のWindowsでは、内部的には\Device\Nullという名前になり、DOSのNULはそのデバイスへのソフトリンクになっていた。OpenVMSでは、NL:という名前である。

俗語 編集

UNIXプログラマの間では、次のような冗談めかした隠語表現あるいはメタファーに使われる。

  • 「不平不満は/dev/nullに送ってください」(不平不満は受け付けない)
  • 「私のメールは/dev/nullにアーカイブされた」(私のメールは削除された)
  • /dev/nullにリダイレクトしろ」(死んじまえ)

欧米ではチタニウムPowerBook G4の広告コピーとして The Titanium Powerbook G4 Sends other UNIX boxes to /dev/null.(チタニウムPowerBook G4は他のUNIXマシンを/dev/null送りにする)という文が使われた。

ジョークのネタとしてもよく使われ、システムの/dev/nullは98%まで使用済みなどというユーザーへのワーニング表示などがある。1995年ドイツの雑誌 c'tエイプリルフール記事として、入力されたデータを内蔵するLEDの点滅に変換する/dev/nullチップが登場したという嘘の記事が掲載されたことがある。

関連項目 編集

参考文献 編集

  1. ^ Microsoft. “SHELL Redirected to NUL Device Suppresses MS-DOS Message”. 2013年10月6日閲覧。