타자기 아님

Not a typewriter
Linux의 "타자기 아님" 오류 코드.

컴퓨팅에서 "타자기 아님" 또는[1] ENOTTY는 많은 Unix 시스템에서 볼 수 있는 errno.h에 정의된 오류 코드입니다.현재 이 코드는 ioctl 시스템콜에서 비활성 ioctl(입출력 제어) 번호가 지정되었음을 나타내기 위해 사용됩니다.

세부 사항

이 에러는, 초기 UNIX 로부터 발생했습니다.버전 6 이전의 UNIX에서는 I/O 제어는 gtty 및 stty 시스템콜을 [2]통해 시리얼 접속 단말 디바이스(일반적으로 TTY)로 제한되었습니다.단말기가 아닌 디바이스에서 이러한 콜을 사용하려고 하면 에러는 ENOTTY가 됩니다.stty/gty 시스템콜이 보다 일반적인 ioctl(I/O Control)콜로 대체되었을 때 ENOTTY 에러 코드는 유지되었습니다.

초기 컴퓨터와 유닉스 시스템은 전기 기계식 타자기를 [3][4]단말기로 사용했다.현대 UNIX 시스템에서 널리 사용되는 TTY의 약자는 "Teletypewriter"의 약자입니다.를 들어, SAHUP 신호의 원래 의미는 SAHUP 신호를 사용하는 텔레타이프라이터의 전화 회선을 절단하는 것입니다."타자기"라는 총칭은 아마도 "텔레타입"이 AT&T 자회사인 텔레타입사의 등록 상표이며 너무 구체적이기 때문에 사용되었을 것입니다."텔레타이프"라는 이름은 좀 더 일반적인 용어인 "텔레타이프"에서 유래되었다. "타자기"를 사용하는 것은 같은 원래 용어의 다른 축약어이다.

POSIX는 ENOTTY를 "단말기가 아니다"[5]라는 의미로 설명함으로써 이 문제를 회피합니다.

ioctl은 단말기 이외의 디바이스에서 지원되기 때문에 일부 시스템에서는 [6][7]대신 "Inpropairable ioctl for device"와 같은 다른 메시지가 표시됩니다.

발생.

프로그램에 의해 ioctl이 발행되지 않은 경우에도 이 메시지가 표시되는 경우가 있습니다.이는 isatty() 라이브러리 루틴이 작동하는 방식에 기인합니다.에러 코드 errno 는, 시스템콜이 실패했을 경우에만 설정됩니다.C 표준 I/O라이브러리에 의한 첫 번째 시스템콜 중 하나는 프로그램이 사람에 의해 인터랙티브하게 실행되고 있는지 여부를 판별하기 위해 사용되는isatty()콜입니다(이 경우 isatty()는 성공하고 라이브러리는 한 번에 한 줄씩 출력을 쓰기 때문에 사용자가 텍스트의 규칙적인 흐름을 볼 수 있습니다).또는 파이프라인의 일부로서 사용됩니다(이 경우 블록이 작성됩니다).한 번에 효율화를 실현합니다).시스템 호출과 무관한 이유로 라이브러리 루틴이 실패하고(예를 들어 패스워드 파일에서 사용자 이름을 찾을 수 없었기 때문에), 순진한 프로그래머가 모든 장애에 대해 일반 오류 보고 루틴 perror()를 맹목적으로 호출하면, 남은 ENOTTY는 완전히 부적절한 "타자기 아님"(또는 "텔레타입 아님") 또는 "Inappr"가 됩니다.opriate ioctl for device)를 사용자에게 전달합니다.

수년 동안 UNIX 메일 프로그램[8] sendmail에는 다른 시스템에서 메일이 배달될 때 메일 프로그램이 비대화 방식으로 실행된다는 오류가 있었습니다.수신인 주소가 로컬이지만 로컬 패스워드 파일에서 찾을 수 없는 사용자 이름을 참조한 경우, 전자 메일의 발신자에게 회신된 메시지는 통신하려는 사람이 타자기가 아니라는 안내 메시지입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "What does ENOTTY stand for?". www.abbreviations.com. Retrieved 2020-07-16.
  2. ^ 버전 6 UNIX 매뉴얼, 섹션 2, 시스템콜
  3. ^ Unix Programmer's Manual. November 3, 1971.
  4. ^ RFC 1, 호스트 소프트웨어, Steve Crocker(1969년 4월 7일).3페이지의 "간단한 사용" 섹션.
  5. ^ "The Open Group Base Specifications Issue 7, 2018 edition/IEEE Std 1003.1-2017: isatty".
  6. ^ "OpenBSD manual: intro, errno — introduction to system calls and error numbers".
  7. ^ "FreeBSD manual: intro -- introduction to system calls and error numbers".
  8. ^ A/UX: support.apple.com (2/95) 기사 TA31349 (95년 2월 27일)를 메일 및 "타자기 아님"으로 전송합니다.

외부 링크