CR и LF
американский стандартный код для обмена информацией (ASCII) определил управляющие символы, включая возврат каретки (CR) и перевод строки (LF), которые использовались (и все еще используются) для управления положением печати на принтерах способом, аналогичным механическим пишущим машинам, которые предшествовали ранним компьютерным принтерам.
зависимость от платформы
в Windows традиционную линию-разделитель в текстовых файлах следует КЛ ЛН
In старые (до OSX) системы Apple Macintosh традиционным разделителем строк в текстовых файлах был CR
в Unix и Linux традиционным разделителем строк в текстовых файлах является LF.
\n и \r
во многих языках программирования и сценариев \n
означает "новая линия". Иногда (но не всегда) это означает символ перевода строки ASCII (LF), который, как вы говорите, перемещает курсор (или позицию печати) вниз на одну строку. В принтере или на пишущей машинке, можно бумага поднялась на одну строчку.
всегда \r
означает символ возврата каретки ASCII (CR), название которого на самом деле происходит от механических пишущих машинок, где был ключ возврата каретки, из-за которого ролик ("каретка"), который нес бумагу, чтобы двигаться вправо, питание от пружины, насколько это будет идти. Таким образом, устанавливаем текущую позицию набора текста на левое поле.
Программирование
в некоторых языках программирования \n
может означать a зависящая от платформы последовательность символов, заканчивающихся или разделяющих строки в текстовом файле. Например в Perl, print "\n"
создает другую последовательность символов в Linux, чем в Windows.
в Java, лучшая практика, если вы хотите использовать собственные окончания строк для платформы выполнения, не использовать \n
или \r
на всех. Вы должны использовать System.getProperty("line.separator")
. Вы должны использовать \n
и \r
где вы хотите LF и CR независимо от платформы (например, как используется в HTTP, FTP и других интернет коммуникационный протокол.)
действовать до его закрытия в Unix
в оболочке Unix stty
команда может использоваться, чтобы заставить оболочку переводить между этими различными соглашениями. Например stty -onlcr
заставит оболочку впоследствии перевести все исходящие LFs в CR LF.
Linux и OSX следуют соглашениям Unix
текстовые файлы
текстовые файлы по-прежнему чрезвычайно важны и широко используются. Например, HTML и XML примеры текстовый файл. Большинство важных интернет-протоколов, таких как HTTP, следуют соглашениям о текстовых файлах и содержат спецификации для окончаний строк.
принтеры
большинств принтеры за исключением очень самого дешевого, все еще уважают CR и LF. На самом деле они являются фундаментальными для наиболее широко используемых языков описания страниц - PCL и Postscript.