IT_etc/유용한 전산 지식들..

[펌] 텍스트 파일에서 Line Feed (LF)와 Carriage Return (CR) 이란?

JJun ™ 2009. 6. 21. 13:43

출처: http://mwultong.blogspot.com/2006/07/cr-lf.html

 

다음줄로 행갈이를 할 때 사용하는 특수 문자입니다. 눈에는 보이지 않습니다.

                                                                           

   Line Feed (LF)       

 - 아스키 코드: 16진수로 0A
 - 기능: 커서를 현재 행의 다음 행으로, 즉 아래로 내리기

  Carriage Return (CR)

 - 아스키 코드: 16진수로 0D
 - 기능: 커서를 현재 행의 맨 좌측으로 옮기기

 


프린터나 타자기에서 사용되던 개념인데, 컴퓨터의 텍스트 파일에서도 사용되고 있습니다.

'커서를 아래로 내리는 동작'과 '커서의 행의 맨 앞으로 보내는 동작'을 합치면,

다음 줄로 행갈이가 됩니다. 메모장 등에서, 엔터키를 치면 다음 줄로 내려갑니다.

이때 각 줄의 끝에 바로 이 행갈이 문자가 자동으로 붙습니다.

 

MS사의, 도스(DOS)/윈도우용 텍스트 파일은 위와 같이, CR/LF 가 합쳐진 0D 0A 코드로 행갈이가

됩니다. 유닉스나 리눅스에서는 간단히 0A 만으로 행갈이가 되어 더 합리적입니다.

컴퓨터 텍스트 파일에서의 행갈이는, 프린터나 타자기와 달라서, 단순하기 때문에 CR/LF 를 동시에

사용할 필요는 없습니다. 그렇지만 MS에서는 굳이 그런 방식을 사용하는군요.

 

 

이 아스키 코드표는 10진수로 되어 있기에 LF는 그림의 10번, CR은 그림의 13번입니다.

둘 다 보이지 않는 특수 문자입니다.


도스/윈도우 텍스트 파일에서는 그림의, 13번+10번 문자 2개가 붙어서, 즉 CR+LF로, 하나의 행갈이를

표현합니다. ( 도스/윈도우 파일에서의 행갈이 문자는 16진수로 0D 0A 입니다. )

 

유닉스/리눅스 텍스트에서는, 그림의 10번 문자 하나로, 즉 LF로, 하나의 행갈이를 표현합니다.

( 리눅스/유닉스 텍스트 파일에서의 행갈이 문자는 16진수로 0A 입니다. )

 

MAC(맥) 텍스트에서는, 그림의 13번 문자 하나로, 즉 CR로, 하나의 행갈이를 표현합니다.
( MAC(애플의 매킨토시) 텍스트의 행갈이 문자는 16진수로 0D 입니다. )

 

※ 즉, 리눅스/유닉스 텍스트 파일에서의 행갈이 문자는 1바이트이고, 도스/윈도우의 행갈이 문자는

    2바이트이기 때문에, 리눅스/유닉스 텍스트 파일의 크기가 더 작고 효율적입니다. 그러나 윈도우의

    메모장에서는 0D 0A 로 행갈이하지 않는 텍스트 파일은 잘 읽을 수가 없습니다. 이때는 울트라에디트

    같은 전문적인 에디터로 문서를 읽어야 합니다.

    참고로, 행갈이 문자는 눈에 보이지 않습니다. 헥사 에디터나 헥사 뷰어로 보아야만 보입니다.

    울트라에디터에서 Ctrl+H 키를 누르면 헥사 모드가 되는데, 여기서 행갈이 문자를 16진수로 볼 수 있지만,

    울트라에디터는 기본적으로 모든 종류의 텍스트 파일을 항상 도스 텍스트로 임시로 변환하여 편집하기에

    정확히 보이지는 않습니다. 본격적인 헥사 에디터가 필요합니다.