web-dev-qa-db-ja.com

キャリッジリターン、ラインフィード、およびニューライン

キャリッジリターン、ラインフィード、ニューラインの違いは何ですか? OSに依存しますか?次の行に進むためだけにそれらすべてを使用する必要があるのはなぜですか?

23
arvind.mohan

一般に、「改行」とは、改行を示すものとして一般に解釈される文字のセットを指します。これには、次のものが含まれます。

  • DOS/WindowsのCRLF
  • [〜#〜] cr [〜#〜]古いMacの場合
  • [〜#〜] lf [〜#〜]最新のMacを含むUnixバリアント

[〜#〜] cr [〜#〜]はキャリッジリターンASCII文字(コード0x0D)、通常は\ rとして表されます。[〜#〜] lf [〜#〜]は改行文字(コード0x0A)であり、通常は\ nとして表されます。

オリジナルのタイプライターベースのコンピューターは、これらの文字の両方を必要としていました。これは、まさに彼らの言うことを実行します。CRはキャリッジを紙の左側に戻し、LF 1行でフィードしました。Windowsはこれを維持しました。シーケンスは変更されていませんが、Unixバリアントは、シンボリックにのみ必要とされた後、より効率的な文字の使用を選択しました。

このシーケンスをコードで表す必要がある場合は、プラットフォームに依存しない改行シンボルまたは関数を探してください。そうでない場合は、少なくとも上記の3つのバリエーションを考慮に入れてください。

歴史の詳細: http://www.codinghorror.com/blog/2010/01/the-great-newline-schism.html

29
jrajav