캐리지 리턴(CR)과 라인 피드(LF)는 느린 프린터의 유산인 걸로 알고 있습니다.
CR은 현재 위치를 나타내는 커서(?)를 맨 앞으로 이동시킨다는 뜻이고,
LF는 커서의 위치를 아랫줄로 이동시킨다는 뜻입니다.
이 두 동작을 합치면 뉴라인('\n')과 동일한 동작을 하게 됩니다.

굳이 두 동작으로 나눈 이유는 과거의 느린 프린터가 물리적인 동작을 취하는데 충분한 시간을 확보해주기 위해서 신호를 두 개로 나누어 보내주었기 때문이라고 알고 있습니다.

하지만 현재는 둘 중 하나만 있어도 뉴라인으로 간주합니다. 따라서 신경쓰지 않으셔도 됩니다. (아~~주 가끔 그 문제로 삽질을 하는 경우도 있을 수는 있지만..- -+)

그리고 LF로 뉴라인을 나타내는지 CR+LF로 뉴라인을 나타내는지는 언어의 차이가 아니라 시스템의 차이입니다.
Unix-like 시스템에서는 LF로,
윈도우즈에서는 CR+LF로 표현합니다.

덧붙이자면,
정규식에서는 CR과 LF는 의미가 없습니다.
모두 뉴라인 하나로 표현됩니다.



printf ("abcdefg\rhi"); 

화면표시결과는 abcdefg 표시후 맨앞줄로 이동후 hi를 표시하면

hicdefg

로 나타나고,

 

printf("abcdefg\nhi");

화면표시결과는 abcdefg 표시후 다음줄로 이동후 hi를 표시하면

abcdefg

             hi

위에서 g 바로밑 다음부터 hi임 (편집기에서 바로보이는지 조금 안맞네요)

 

printf("abcdefg\n\rhi");

는 abcdefg 표시후 커서를 맨앞으로 이동후 줄을 바꾸고 hi를 표시합니다.

abcdefg

hi

로 나타납니다.

'Embedded Lab > linux, x86' 카테고리의 다른 글

[NASM과 MASM]  (0) 2012.06.02
[CPU스케쥴러]  (0) 2012.05.26
[vi편집기 자동정렬]  (0) 2012.05.01
[rm, rndir 옵션]  (0) 2012.04.11
[x86 / datasheet / 메모리관리 / x86에서의 메모리정책 (보호모드/실제모드)]  (0) 2012.04.04
Posted by cyj4369
,