본문으로 이동

제어 문자

위키백과, 우리 모두의 백과사전.

컴퓨팅 및 전기 통신에서 제어 문자(control character) 또는 비인쇄 문자(non-printing character, NPC)는 문자 인코딩 방식 내의 코드 포인트로서, 일반적인 문자와 기호를 나타내지 않는 문자를 말한다. 이들은 텍스트에 기호를 추가하는 것 외의 효과를 내기 위한 대역 내 신호로 사용된다. 공백 문자를 제외한 나머지 모든 문자는 주로 그래픽 문자라고 하며, 이는 인쇄 문자(또는 출력 가능 문자)라고도 한다. ASCII 표준에는 코드 7번인 BEL처럼 경고음을 발생시키는 등의 경고음 문자를 포함하여 총 33개의 제어 문자가 있다.[1]

역사

[편집]

모스 부호의 절차 기호(prosign)는 제어 문자의 일종이다.

1870년의 보도 코드에서 NUL과 DEL이라는 형태의 제어 문자가 처음 도입되었다. 1901년의 머리 코드(Murray code)는 캐리지 리턴(CR)과 새줄 문자(LF)를 추가했으며, 다른 버전의 보도 코드들에도 여러 제어 문자가 포함되었다.

작업자에게 신호를 보내기 위해 벨을 울리는 경고음 문자(BEL) 역시 초기 텔레타이프 제어 문자였다.

일부 제어 문자는 "형식 제어기"(format effector)라고 불리기도 했다.

ASCII에서의 제어 문자

[편집]
32개의 제어 문자, 공백 및 지움 문자에 할당된 초기 기호들. (ISO 2047, MIL-STD-188-100, 1972)

상당히 많은 제어 문자가 정의되어 있다(ASCII에는 33개, ECMA-35에는 32개가 추가됨). 이는 초기 단말기가 매우 단순한 기계식 또는 전기식 제어 장치를 사용했기 때문에 상태를 기억하는 API를 구현하는 비용이 매우 비쌌고, 따라서 모든 기능을 위해 각기 다른 코드가 필요했기 때문이다. 코드 3210 미만의 ASCII 테이블에 있는 모든 항목(기술적으로는 C0 제어 코드 집합)은 제어 문자이며, 여기에는 텍스트 줄을 구분하는 데 사용되는 CR 및 LF가 포함된다. 코드 12710(DEL) 또한 제어 문자이다.[2][3]

ECMA-35 및 ISO/IEC 8859에 의해 정의된 확장 ASCII 집합은 코드 12810부터 15910까지를 제어 문자로 추가했다. 이는 주로 상위 비트를 제거하더라도 인쇄 문자가 C0 제어 코드로 바뀌지 않도록 하기 위함이었다. 이 두 번째 집합을 C1 집합이라고 한다.

IBM의 EBCDIC 문자 집합에는 65개의 제어 코드가 포함되어 있는데, 여기에는 모든 ASCII C0 제어 코드와 유니코드에 추가되지 않은 추가 코드들이 포함된다. 또한 32개의 제어 코드를 정의하려는 여러 시도가 있었으나, 이들 중 어느 것도 유니코드로 이전되지 않았다.

제어 문자 중 극히 일부만이 원래 목적과 유사한 용도로 여전히 사용되고 있다.

  • 0x00 (널, NUL, \0, ^@): 원래는 무시되는 문자로 의도되었으나, 현재는 C를 포함한 많은 프로그래밍 언어에서 문자열의 끝을 표시하는 데 사용된다.
  • 0x04 (EOT, ^D): 유닉스 단말기에서의 파일 끝(EOF) 문자.[4]
  • 0x07 (벨, BEL, \a, ^G): 장치에서 벨이나 비프음, 혹은 화면 깜빡임과 같은 경고를 발생시킬 수 있다.
  • 0x08 (백스페이스, BS, \b, ^H): 이전 문자에 겹쳐 쓸 수 있다.
  • 0x09 (가로 탭, HT, \t, ^I): 인쇄 위치를 다음 탭 정지 위치로 이동한다.
  • 0x0A (새줄 문자, LF, \n, ^J): 인쇄 헤드를 한 줄 아래로 이동시킨다(경우에 따라 왼쪽 끝으로 이동). 유닉스 계열 시스템에서 줄 끝 마커로 사용된다.
  • 0x0B (세로 탭, VT, \v, ^K): 세로 방향의 탭 이동.
  • 0x0C (폼 피드, FF, \f, ^L): 프린터에서 다음 페이지의 맨 위로 용지를 배출하거나, 비디오 단말기의 화면을 지울 때 사용한다.
  • 0x0D (캐리지 리턴, CR, \r, ^M): 인쇄 위치를 줄의 시작점으로 이동시켜 겹쳐 쓰기를 허용한다. 맥 OS (클래식), OS-9, FLEX (및 변종)에서 줄 끝 마커로 사용된다. CR+LF 조합은 CP/M-80 및 도스, 윈도우 등 그 파생형에서 사용된다.
  • 0x1B (이스케이프, ESC, \e (GCC 전용), ^[): 이스케이프 시퀀스를 시작한다.
  • 0x1C (파일 구분 문자, FS, ^\): ISO/IEC 10538에서는 문서 내 텍스트의 끝을 나타내는 "문서 종료자" 코드로 사용한다.[5]: 12 
  • 0x1D (그룹 구분 문자, GS, ^]): ISO/IEC 10538에서는 페이지 내 텍스트의 끝을 나타내는 "페이지 종료자" 코드로 사용한다.[5]: 16 

제어 문자는 사용자가 입력할 때 특정 동작을 수행하기도 한다. 예를 들어, 실행 중인 프로세스를 중단하기 위해 Ctrl+C(텍스트 종료 문자, ETX)를 사용하거나, 윈도우에서 입력된 파일의 끝을 알리기 위해 Ctrl+Z(치환 문자, SUB)를 사용한다. 이러한 용도는 ASCII 정의와는 거의 관련이 없다. 현대 시스템에서는 "Ctrl+V를 입력하여 붙여넣기"와 같이 단축키를 제어 문자처럼 설명하지만, 실제로는 구현 과정에서 해당 코드 번호를 사용하지 않는 경우가 많다.

유니코드에서의 제어 문자

[편집]

이 65개의 제어 코드는 유니코드로 계승되었다. "제어 문자"는 U+0000~U+001F(C0 제어 코드), U+007F(지움 문자), 그리고 U+0080~U+009F(C1 제어 코드)를 말한다. 이들의 일반 범주(General Category)는 "Cc"이다. Cc 제어 문자는 유니코드에서 공식 명칭을 가지지 않으며, 대신 "<control-001A>"와 같은 레이블이 부여된다.[6]

유니코드는 폭 없는 비접합자와 같이 제어 문자로 간주될 수 있는 더 많은 문자를 추가했으나, 이러한 "서식 문자"와 65개의 제어 문자를 구분하고 있다. 이들은 "Cc"가 아닌 일반 범주 "Cf"로 분류된다.

화면 표시

[편집]

비인쇄 문자를 표시하는 방법에는 여러 가지가 있으며, ASCII 인코딩의 경고음 문자를 예로 들 수 있다.

  • ASCII의 캐럿 표기법: 알파벳의 n번째 글자를 사용 (^G)
  • 이스케이프 시퀀스: C/C++ 문자열 코드 등 (\a, \007, \x07 등)
  • 약어: 주로 세 글자의 대문자 사용 (BEL)
  • 제어 문자 그림(Control Pictures) 유니코드 블록의 문자를 사용하여 약어를 압축한 형태: U+2407 ␇ SYMBOL FOR BELL
  • ISO 2047 그래픽 표현: U+237E ⍾ BELL SYMBOL

제어 문자와 키보드의 매핑

[편집]

ASCII 기반 키보드에는 Shift 키처럼 동작하는 "Control", "Ctrl", 혹은 드물게 "Cntl"이라고 적힌 키가 있으며, 이를 다른 글자나 기호 키와 조합하여 사용한다. 한 가지 구현 방식으로는, 컨트롤 키와 조합된 (일반적으로) 대문자 코드보다 64만큼 낮은 코드를 생성하는 방식이 있다(즉, ASCII 코드값에서 0x40을 뺌). 다른 구현 방식은 키에서 생성된 ASCII 코드와 0x1F를 AND 연산하여 5~7번 비트를 0으로 강제하는 것이다. 예를 들어, "control"과 "g" 키를 누르면 (이진수로 0110 0111) 코드 7(BELL, 10진수로 7, 이진수로 0000 0111)이 생성된다. NULL 문자(코드 0)는 Ctrl-@으로 표현되는데, "@"는 ASCII 문자 집합에서 "A" 바로 앞의 코드이다. 편의를 위해 일부 단말기에서는 Ctrl-Space를 Ctrl-@의 별칭으로 허용한다. 어떤 경우든, 이는 0에서 31 사이의 32개 ASCII 제어 코드 중 하나를 생성한다. DEL 문자(코드 12710)는 테이블에서의 위치와 값 때문에 이 방식으로는 생성할 수 없으며, 간혹 Ctrl-?이 이 문자로 사용되기도 한다.[7]

컨트롤 키를 누르고 있는 동안에는 Shift 키나 Caps Lock 키의 상태와 관계없이 동일한 제어 문자가 생성된다. 즉, 대문자가 출력되는지 소문자가 출력되는지는 중요하지 않다. 컨트롤 키와 공백, 그래픽 문자, 숫자 키(ASCII 코드 32~63)의 조합에 대한 해석은 시스템마다 다르다. 어떤 시스템은 컨트롤 키를 누르지 않았을 때와 동일한 문자 코드를 생성하기도 하고, 어떤 시스템은 컨트롤 키가 눌렸을 때 이 키들을 제어 문자로 변환하기도 한다. 비 ASCII("외국어") 키와 컨트롤 키의 조합에 대한 해석도 시스템마다 차이가 있다.

제어 문자는 제어 문자의 값에 64를 더한 ASCII 문자와 캐럿(^)을 함께 출력하는 캐럿 표기법이라는 인쇄 가능한 형태로 자주 렌더링된다. 글자 키를 사용하여 생성된 제어 문자는 따라서 해당 글자의 대문자 형태로 표시된다. 예를 들어, ^G는 G 키를 컨트롤 키와 함께 눌러 생성되는 코드 7을 의미한다.

키보드에는 보통 제어 문자 코드를 생성하는 몇 개의 독립적인 키들도 포함되어 있다. 예를 들어 "Backspace"는 보통 코드 8을, "Tab"은 코드 9를, "Enter" 또는 "Return"은 코드 13을 생성한다(단, 일부 키보드에서는 "Enter"에 대해 코드 10을 생성할 수도 있다).

많은 키보드에는 ASCII 인쇄 문자나 제어 문자에 대응하지 않는 키(예: 커서 이동 화살표, 워드 프로세서 기능 키)가 포함되어 있다. 이 키 입력은 다음 네 가지 방법 중 하나로 컴퓨터 프로그램에 전달된다. 사용되지 않는 제어 문자를 전용으로 사용하기, ASCII 이외의 인코딩 사용하기, 다중 문자 제어 시퀀스 사용하기, 또는 문자 생성 외의 추가 메커니즘 사용하기가 그것이다. "덤(dumb)" 단말기는 대개 제어 시퀀스를 사용한다. 1980년대에 제작된 독립형 개인용 컴퓨터에 연결된 키보드들은 주로 앞의 두 가지 방법을 사용했다. 현대의 컴퓨터 키보드는 눌린 물리적 키를 식별하는 스캔코드를 생성하며, 이후 컴퓨터 소프트웨어가 위에서 설명한 네 가지 방법 중 하나를 포함하여 해당 입력을 처리하는 방식을 결정한다.

설계 목적

[편집]

제어 문자는 인쇄 및 화면 표시 제어, 데이터 구조화, 전송 제어, 기타(miscellaneous)라는 몇 가지 그룹으로 나뉘도록 설계되었다.[8]

인쇄 및 화면 표시 제어

[편집]

인쇄 제어 문자는 초기에 가장 먼저 나온 출력 장치인 프린터의 물리적 메커니즘을 제어하기 위해 사용되었다. 이 아이디어의 초기 사례로는 보도 코드에서 두 코드 페이지 사이를 전환하기 위해 사용된 Figures (FIGS)와 Letters (LTRS)가 있다. 더 나중의 예로는 대역 외 ASA 캐리지 제어 문자가 있다. 이후 제어 문자는 인쇄할 데이터 스트림에 통합되었다. 캐리지 리턴 문자(CR)를 장치로 보내면 장치는 인쇄 위치를 쓰기가 시작되는 용지의 끝으로 이동시킨다(다음 줄로 이동시킬 수도 있고 아닐 수도 있다).

새줄 문자(LF/NL)는 인쇄 위치를 다음 줄로 이동시킨다. 장치와 설정에 따라 다음 줄의 시작점(서구권 언어처럼 왼쪽에서 오른쪽으로 쓰는 언어에서는 왼쪽 끝, 히브리어와 아랍어처럼 오른쪽에서 왼쪽으로 쓰는 언어에서는 오른쪽 끝)으로 이동할 수도 있다. 세로 및 가로 탭 문자(VT 및 HT/TAB)는 출력 장치의 인쇄 위치를 읽기 방향의 다음 탭 정지 위치로 이동시킨다. 폼 피드 문자(FF/NP)는 새 종이를 시작하게 하며, 첫 번째 줄의 시작으로 이동할 수도 있고 아닐 수도 있다.

백스페이스 문자(BS)는 인쇄 위치를 한 문자 공간만큼 뒤로 이동시킨다. 프린터나 하드카피 단말기에서 이는 보통 문자를 겹쳐 써서 평소에 사용할 수 없는 다른 문자를 만들기 위해 사용된다. 비디오 단말기 등 전자식 출력 장치에서는 BS, SP, BS 순서로 문자를 지우는 파괴적 백스페이스와 그렇지 않은 비파괴적 백스페이스 중 하나를 소프트웨어(혹은 하드웨어) 설정으로 선택할 수 있는 경우가 많다. 쉬프트 인(SI) 및 쉬프트 아웃(SO) 문자는 대체 문자 집합, 폰트, 밑줄 또는 기타 인쇄 모드를 선택했다. 이와 같은 기능을 수행하기 위해 이스케이프 시퀀스가 종종 사용되기도 했다.

종이에 물리적으로 인쇄하지 않는 단말기가 등장하면서 화면 배치나 삭제 등과 관련하여 더 많은 유연성이 제공되었고, 인쇄 제어 코드들도 이에 적응하였다. 예를 들어 폼 피드는 이동할 새 종이 페이지가 없기 때문에 보통 화면을 지우는 용도로 사용되었다. 새 단말기와 프린터의 유연성을 활용하기 위해 더 복잡한 이스케이프 시퀀스가 개발되었다. 제어 문자 개념은 다소 제한적이었으며, 새롭고 유연한 하드웨어와 함께 사용할 때 그 한계가 극명했다. (때때로 이스케이프 시퀀스로 구현되는) 제어 시퀀스는 새로운 유연성과 성능에 부합할 수 있었으며, 표준 방법으로 자리 잡았다. 그러나 선택할 수 있는 다양한 표준 시퀀스는 여전히 많이 존재한다.

데이터 구조화

[편집]

구분자(파일, 그룹, 레코드, 유닛: FS, GS, RS, US)는 천공 카드를 시뮬레이션하기 위해 테이프 등에서 데이터를 구조화할 목적으로 만들어졌다. 매체 종료(EM)는 테이프(또는 다른 기록 매체)가 끝나가고 있음을 경고한다. 많은 시스템에서 데이터 구조화를 위해 CR/LF와 TAB을 사용하지만, 구조화가 필요한 데이터 내에서 구분자 제어 문자를 접할 수도 있다. 구분자 제어 문자는 중복 정의되지 않으며, 데이터를 구조화된 그룹으로 나누는 것 외의 일반적인 용도는 없다. 이들의 수치 값은 단어 구분자로 간주될 수 있는 공백 문자와 연속적이다.

예를 들어, RS 구분자는 RFC 7464(JSON 텍스트 시퀀스)에서 JSON 요소의 시퀀스를 인코딩하는 데 사용된다. 각 시퀀스 항목은 RS 문자로 시작하여 새줄 문자로 끝난다. 이를 통해 개방형 JSON 시퀀스를 직렬화할 수 있다. 이는 JSON 스트리밍 프로토콜 중 하나이다.

전송 제어

[편집]

전송 제어 문자는 데이터 스트림을 구조화하고, 전송 오류 발생 시 필요에 따라 재전송을 관리하거나 원활하게 실패 처리를 하기 위해 의도되었다.

헤딩 시작(SOH) 문자는 데이터 스트림에서 주소 및 기타 관리 데이터가 포함된 비데이터 섹션을 표시하기 위한 것이다. 텍스트 시작 문자(STX)는 헤더의 끝과 스트림의 텍스트 부분 시작을 표시했다. 텍스트 종료 문자(ETX)는 메시지 데이터의 끝을 표시했다. 널리 사용되는 관례로 ETX 바로 앞의 두 문자를 오류 검출을 위한 체크섬이나 CRC로 만드는 방법이 있다. 전송 블록 종료 문자(ETB)는 전송 목적을 위해 데이터를 블록으로 나눌 때 그 데이터 블록의 끝을 나타내는 데 사용되었다.

이스케이프 문자(ESC)는 다음 문자를 "인용"하기 위한 것으로, 만약 다음 문자가 제어 문자라면 제어 기능을 수행하지 않고 해당 문자를 인쇄하도록 하는 것이었다. 오늘날에는 거의 사용되지 않는다. 문맥에 따라 다양한 인쇄 가능 문자가 눈에 보이는 "이스케이프 문자"로 사용된다.

치환 문자(SUB)는 다음 문자를 인쇄 가능 문자에서 다른 값으로 변환(보통 5번 비트를 0으로 설정)할 것을 요청하기 위한 것이었다. 이는 타자기 등으로 생성된 종이 시트 같은 매체가 인쇄 가능한 문자만 전송할 수 있는 경우 유용하다. 그러나 텍스트 모드로 파일이 열리는 MS-DOS 시스템에서는 다른 운영 체제에서 흔한 Ctrl-C나 Ctrl-D 대신 이 Ctrl-Z 문자로 "텍스트 끝" 또는 "파일 끝"을 표시한다.

취소 문자(CAN)는 이전 요소가 폐기되어야 함을 알린다. 부정 응답 문자(NAK)는 일반적으로 수신에 문제가 있었으며, 현재 요소를 다시 보내야 함을 알리는 명확한 플래그이다. 응답 문자(ACK)는 일반적으로 현재 요소에 문제가 발견되지 않았음을 나타내는 플래그로 사용된다.

전송 매체가 반이중(한 번에 한 방향으로만 전송 가능) 방식일 때, 보통 언제든 전송할 수 있는 마스터 스테이션과 전송 허가가 있을 때만 전송할 수 있는 하나 이상의 슬레이브 스테이션이 존재한다. 질의 문자(ENQ)는 일반적으로 마스터 스테이션이 슬레이브 스테이션에게 다음 메시지를 보내도록 요청할 때 사용한다. 슬레이브 스테이션은 전송 종료 문자(EOT)를 전송하여 전송이 완료되었음을 알린다.

장치 제어 코드(DC1~DC4)는 원래 각 장치에서 필요에 따라 구현할 범용 코드로 의도되었다. 그러나 데이터 전송에서 수신기가 일시적으로 데이터를 더 이상 수락할 수 없을 때 송신자에게 전송 중지를 요청해야 하는 보편적인 요구가 있었다. 디지털 이큅먼트 코퍼레이션은 19(장치 제어 3 문자(DC3), control-S 또는 XOFF)를 전송 "S"top으로, 17(장치 제어 1 문자(DC1), control-Q 또는 XON)을 전송 시작으로 사용하는 관례를 발명했다. 이는 너무나 널리 사용되어 공식 ASCII의 일부가 아니라는 사실을 모르는 사람이 많다. 그러나 잠재적인 교착 상태(deadlock)를 피하기 위해 이러한 전송 흐름 제어 신호의 사용에 대한 합리적인 프로토콜을 사용해야 한다.

데이터 링크 이스케이프 문자(DLE)는 다음 문자가 STX나 ETX와 같은 제어 문자임을 데이터 링크의 반대편에 알리는 신호로 의도되었다. 예를 들어 패킷은 (DLE) <STX> <PAYLOAD> (DLE) <ETX>와 같은 방식으로 구조화될 수 있다.

기타 코드

[편집]

코드 7(BEL)은 수신 단말기에서 가청 신호를 발생시키기 위한 것이다.[9]

많은 ASCII 제어 문자는 오늘날 보기 힘든 당시의 장치를 위해 설계되었다. 예를 들어 코드 22, "동기 대기"(SYN)는 실제 보낼 데이터가 없을 때 동기식 모뎀(데이터를 계속 보내야 함)이 보냈던 것이다. (현대 시스템은 보통 시작 비트를 사용해 전송된 워드의 시작을 알리는데, 이는 비동기 통신의 특징이다. 동기식 통신 링크는 메인프레임을 다른 메인프레임이나 미니컴퓨터에 연결하기 위해 전용선으로 운영되는 메인프레임에서 더 흔히 볼 수 있었다.)

코드 0(ASCII 코드 이름 NUL)은 특별한 경우이다. 종이 테이프에서 구멍이 없는 경우를 나타낸다. 이를 아무 의미 없는 채움 문자로 취급하는 것이 편리하다. NUL 문자의 위치에는 펀치 구멍이 없으므로 나중에 다른 문자로 대체할 수 있어서, 오류 수정이나 나중에 정보가 입수될 경우를 위해 공간을 확보하는 용도로 주로 사용되었다. 컴퓨팅에서는 고정 길이 레코드의 패딩, 문자열의 끝 표시, 그리고 과거에는 인쇄 장치가 제어 기능을 수행할 충분한 시간을 주기 위한 용도로 자주 사용된다.

코드 127(DEL, "rubout"이라고도 함) 역시 특별한 경우이다. 7비트 코드는 이진수로 모든 비트가 켜진 상태로, 종이 테이프에서 겹쳐 뚫으면 문자 셀을 본질적으로 지우는 효과가 있었다. 종이 테이프는 ASCII가 개발될 당시 Biuro Szyfrów의 제2차 세계 대전 암호 해독 장치까지 거슬러 올라가는 컴퓨팅 역사와 함께 흔히 쓰이던 저장 매체였다. 종이 테이프는 1970년대에 퇴물이 되었으므로, ASCII의 이 측면은 그 이후로 거의 사용되지 않았다. 일부 시스템(초기 애플 컴퓨터 등)은 이를 백스페이스로 변환하기도 했다. 그러나 이 코드는 다른 인쇄 가능 문자들이 차지하는 범위에 있고 공식적으로 할당된 글리프가 없었기 때문에, 많은 컴퓨터 장비 판매업체들은 이를 추가적인 인쇄 가능 문자(잉크로 겹쳐 인쇄하여 텍스트를 지우는 데 유용한, 전체가 검은색인 상자 문자)로 사용했다.

지울 수 없는 PROM은 대개 비트당 하나의 융합 가능한 요소로 구현되며, 보통 1에서 0으로만 한 방향으로 스위칭될 수 있다. 그러한 PROM에서 DEL과 NUL 문자는 종이 테이프에서 사용되었던 것과 같은 방식으로 사용될 수 있다. 하나는 나중에 작성할 수 있는 의미 없는 채움 바이트를 예약하는 데, 다른 하나는 이미 작성된 바이트를 의미 없는 채움 바이트로 변환하는 데 쓰였다. 1을 0으로 바꾸는 PROM의 경우 NUL과 DEL의 역할이 뒤바뀐다. 또한 DEL은 오늘날 거의 사용되지 않는 7비트 문자에서만 작동한다. 8비트 콘텐츠의 경우, 공백 문자로 흔히 정의되는 문자 코드 255를 DEL 대신 사용할 수 있다.

많은 파일 시스템은 제어 문자가 예약된 기능을 가질 수 있기 때문에 파일 이름에 제어 문자를 사용하는 것을 허용하지 않는다.

같이 보기

[편집]

각주

[편집]
  1. ↑ 《American National Standard for Information Systems — Coded Character Sets — 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII), ANSI INCITS 4-1986 (R2002) (formerly ANSI X3.4-1986 (R1997)).》 (PDF). 미국 국가표준 협회, International Committee for Information Technology Standards. 1986년 3월 26일. 4. Specification of the Coded Character Set.
  2. ↑ ASCII format for network interchange. 1969-10-01. RFC 20. https://tools.ietf.org/html/rfc20. Retrieved 2023-04-05.
  3. ↑ 〈5.2 Control Characters〉. 《American National Standard Code for Information Interchange | ANSI X3.4-1977》 (PDF). National Institute for Standards. 1977. 2022년 10월 9일에 원본 문서 (PDF)에서 보존된 문서.
  4. ↑ 〈EOT (End of transmission)〉 (PDF). 《Component Description: IBM 2780 Data Transmission Terminal》 (PDF). Systems Reference Library. 31쪽. GA27-3005-3. 2025년 5월 21일에 확인함. The EOT character terminates the current transmission and returns all terminals in the data-link to control mode. When sent by the transmitting terminal, it indicates that the terminal has nothing more to transmit and is relinquishing the communications line. The receiving terminal can send an EOT character instead of a normal DLE 0, DLE 1, or NAK response. The EOT character in this case is an abort signal that terminates the transmission. When sent in response to a polling operation, the EOT character indicates that the polled terminal has no data to transmit or is unable to continue transmission. An EOT character is recognized (except in Six- Bit Transcode) only when immediately preceded by a SYN pattern (SYN SYN EOT PAD), or when imme- diately preceded by a DLE and followed by a character of which the first four bits must be all "1" bits (PAD character) DLE EOT PAD.
  5. 1 2 《ISO/IEC 10538:1991 Information technology — Control functions for text communication》. 1991년 9월 15일. 2026년 4월 4일에 확인함.
  6. ↑ 〈4.8 Name〉. 《The Unicode Standard Version 13.0 – Core Specification》 (PDF). Unicode, Inc. 2022년 10월 9일에 원본 문서 (PDF)에서 보존된 문서.
  7. ↑ “ASCII Characters”. 2009년 10월 28일에 원본 문서에서 보존된 문서. 2010년 10월 8일에 확인함.
  8. ↑ “Proposed revised American standard code for information interchange” (영어). 《Communications of the ACM》 8 (4): 207–214. April 1965. doi:10.1145/363831.363839. ISSN 0001-0782.
  9. ↑ ASCII format for Network Interchange. October 1969. RFC 20. https://tools.ietf.org/html/rfc20. Retrieved 2013-11-03. An old RFC, which explains the structure and meaning of the control characters in chapters 4.1 and 5.2

외부 링크

[편집]