치환 문자
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
치환 문자는 ASCII 및 유니코드에서 사용되는 제어 문자로, 주로 파일의 끝(EOF)을 나타내는 데 사용되었으며, 운영 체제와 프로그래밍 언어에서 다양한 용도로 활용되었다. 초기 CP/M 운영 체제에서는 파일 크기를 정확히 기록할 수 없어 파일의 끝을 표시하기 위해 사용되었으며, MS-DOS, Unix 등에서도 문자열의 종료 또는 작업 중단 등의 기능을 수행했다. 현재는 파일 끝을 나타내는 데 기술적으로 필요하지 않지만, 하위 호환성을 위해 또는 '소프트 EOF'와 같은 개념으로 텍스트 편집기나 프로그래밍 언어에서 여전히 사용되고 있다. 또한, 유닉스 계열 시스템에서는 프로세스 일시 중단 신호로, GUI 환경에서는 실행 취소 기능으로도 활용된다.
더 읽어볼만한 페이지
치환 문자 | |
---|---|
기본 정보 | |
![]() | |
'명칭' | '치환 문자' |
'약자' | SUB |
'값' | 26 |
'16진수' | 1A |
'8진수' | 032 |
'이진수' | 0001 1010 |
'유니코드' | U+001A |
'블록' | 제어 문자 |
'HTML 엔티티' | |
'URL 인코딩' | '%1A' |
사용법 | |
'기능' | '데이터 스트림에서 유효하지 않거나 잘못된 문자를 대체' |
'일반적 용도' | '파일 끝(End-of-file) 표시, Ctrl+Z 키 입력' |
'기타 용도' | '널(NULL) 문자와 함께 사용되어 데이터 손상 방지' |
입력 방법 | |
'키보드 (일반)' | 'Ctrl + Z' |
'키보드 (유닉스)' | 'Ctrl + D' |
관련 문자 | |
'유사 문자' | Replacement character |
'관련 문자' | 制御文字 |
2. 역사적 용도
역사적으로, PDP-6 모니터, RT-11, VMS, TOPS-10, 그리고 초기 PC CP/M 1 및 2 운영 체제 (및 MP/M과 같은 파생 제품)에서는 기본 파일 시스템이 자체적으로 정확한 파일 크기를 기록할 수 없어 파일의 정확한 파일 종료(EOF)를 명시적으로 표시해야 했다. 파일은 고정 크기의 익스텐트(레코드)로 할당되었으며, 일반적으로 각 파일의 끝에 할당되었지만 사용되지 않은 공간이 남아 있었다.
2017년 현재, 파일의 끝을 나타내기 위해 기술적으로 더 이상 필요하지 않지만, 많은 텍스트 편집기 및 프로그래밍 언어는 여전히 이 관례를 지원하거나, 편집 시 파일 끝에 이 문자를 삽입하도록 구성할 수 있다. 이러한 경우, 이는 "소프트" EOF라고 불리며, 파일의 물리적 끝을 반드시 나타내는 것이 아니라, "이 지점 이후에는 유용한 데이터가 없다"는 것을 나타내는 마커에 가깝다. 실제로, 파일 시스템의 실제 데이터 끝까지 이 문자 너머에 더 많은 데이터가 존재할 수 있다.
많은 파일 형식 표준(예: PNG 또는 GIF)은 헤더에 SUB 문자를 포함한다. 일부 최신 텍스트 파일 형식(예: CSV-1203)은 파일의 마지막 문자로 후행 EOF 문자를 추가하는 것을 여전히 권장한다. 그러나, DOS 또는 Windows에서 파일을 생성할 때 이 문자를 파일에 포함시키지 않으며, 해당 시스템의 API도 실제 파일의 끝을 나타내기 위해 해당 문자를 사용하지 않는다.
일부 프로그래밍 언어(예: Visual Basic)는 내장 텍스트 파일 읽기 기본 요소(INPUT, LINE INPUT 등)를 사용할 때 "소프트" EOF를 지나서 읽지 않는다.
ASCII에서 문자 26은 Substitute라고 불리며, "파일 종료"를 나타내는 다른 문자가 있음에도 불구하고 "파일 종료"를 표시하는 데 사용되었다. "파일 구분 기호"라고 하는 숫자 28도 유사한 목적으로 사용되었다.
2. 1. CP/M 및 MS-DOS
초기 CP/M 운영 체제(버전 1 및 2)와 MS-DOS에서는 파일 시스템이 파일 크기를 정확하게 바이트 단위로 기록할 수 없었다. 따라서 파일은 고정 크기의 익스텐트(레코드)로 할당되었고, 파일의 끝에 할당되었지만 사용되지 않은 공간이 남아 있었다.[1][2] 이 때문에 파일의 끝을 나타내는 마커로 치환 문자(0x1A)를 사용했다.CP/M 3 이상(및 Concurrent CP/M, Concurrent DOS, DOS Plus와 같은 파생 제품)에서 사용되는 확장된 CP/M 파일 시스템은 바이트 단위 파일 크기를 지원했다.[3][4] 그러나 하위 호환성을 위해 치환 문자를 파일 끝에 추가하는 관행은 남아 있었다.
MS-DOS 및 관련 운영 체제에서도 문자 스트림의 끝을 나타내거나, 콘솔 입력 종료를 위해 치환 문자를 사용했다. (예: `COPY CON: TYPEDTXT.TXT` 명령)
2. 2. 유닉스 계열 시스템
유닉스 계열 운영 체제에서 이 문자는 일반적으로 사용자가 현재 실행 중인 대화형 프로세스를 일시 중단하는 방법으로 셸에서 사용된다. 일시 중단된 프로세스는 다시 ''전경''(대화형) 모드에서 재개되거나, ''백그라운드'' 모드에서 실행을 재개하거나, 종료될 수 있다. 사용자가 컴퓨터 터미널에서 입력하면 현재 실행 중인 전경 프로세스에 "터미널 중지"(SIGTSTP) 신호가 전송되어 일반적으로 프로세스 실행이 일시 중단된다. 사용자는 나중에 "전경" 명령(fg
) 또는 "백그라운드" 명령(bg
)을 사용하여 프로세스 실행을 계속할 수 있다.3. 현대적 용도
현대의 많은 텍스트 편집기와 프로그래밍 언어는 파일 끝에 치환 문자(SUB, 0x1A)를 추가하는 기능을 지원하거나 호환성을 위해 처리할 수 있다. 이러한 치환 문자는 "소프트 EOF"라고 불리며, 파일의 물리적 끝이 아니라 "이후에는 유용한 데이터가 없다"는 것을 나타내는 마커로 사용된다.[1][2]
CP/M, MS-DOS 등 초기 운영 체제에서는 파일 시스템이 파일 크기를 정확하게 기록할 수 없었기 때문에 파일 끝을 표시하기 위해 치환 문자를 사용했다.[1][2] 그러나 현대의 파일 시스템에서는 파일 크기를 정확하게 기록할 수 있으므로, 치환 문자는 기술적으로 더 이상 필요하지 않다. 그럼에도 불구하고, 많은 소프트웨어에서 여전히 치환 문자를 지원한다. 그 이유는 다음과 같다.
- 하위 호환성: 이전 시스템과의 호환성을 유지하기 위해 치환 문자를 계속 지원한다.
- 텍스트 파일 처리: 텍스트 파일에서 유용한 데이터의 끝을 표시하는 마커로 사용될 수 있다.
- 파일 형식 표준: PNG, GIF와 같은 일부 파일 형식은 헤더에 치환 문자를 포함하여 텍스트 파일로 열었을 때 헤더 정보만 표시되도록 한다.[3][4]
Visual Basic과 같은 일부 프로그래밍 언어에서는 내장 텍스트 파일 읽기 기능을 사용할 때 "소프트 EOF"를 지나서 읽지 못하는 경우가 있는데, 이때는 파일 시스템 개체를 사용하여 "소프트 EOF" 이후의 데이터를 읽어야 한다.
유닉스 계열 운영 체제에서 치환 문자(Ctrl-Z)는 일반적으로 현재 실행 중인 대화형 프로세스를 일시 중단하는 데 사용된다. 일시 중단된 프로세스는 나중에 다시 전경(대화형) 모드에서 재개되거나, 백그라운드 모드에서 실행을 재개하거나, 종료될 수 있다.
유니코드 보안 고려 사항 보고서에서는 문자 집합 변환 중 매핑할 수 없는 문자를 치환 문자로 대체하는 것을 권장한다.
3. 1. 실행 취소 (Undo)
많은 GUI와 응용 프로그램에서 Control+Z ( macOS에서는 Command+Z)를 사용하여 마지막 작업을 실행 취소할 수 있다. Control+Z를 여러 번 눌러 마지막 작업보다 이전 작업을 실행 취소할 수 있는 응용 프로그램도 많다. Control+Z는 Xerox PARC의 프로그램 디자이너가 텍스트 편집을 제어하기 위해 선택한 소수의 컴퓨터 키보드 시퀀스 중 하나였다.4. 표현 방식
치환 문자의 ASCII 및 유니코드 표현은 다음과 같다.
종류 | 내용 |
---|---|
8진수 코드 | 32 |
10진수 코드 | 26 |
16진수 코드 | 1A, U+001A |
니모닉 기호 | SUB |
이진수 값 | 11010 |
참조
[1]
서적
CP/M 1.4 disc formats
http://www.seasip.de[...]
1998
[2]
서적
CP/M 2.2 disc formats
http://www.seasip.de[...]
1998
[3]
서적
CP/M 3.1 disc formats
http://www.seasip.de[...]
1998
[4]
서적
CP/M 4.1 disc formats
http://www.seasip.de[...]
1998
[5]
웹인용
Keyboard shortcuts for Windows
http://support.micro[...]
마이크로소프트
2012-06-02
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com