Not a typewriter
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/08/29 05:38 UTC 版)

not a typewriter(ノット・ア・タイプライター(タイプライターではない))またはENOTTY[1]は、多くのUNIXシステムに見られるエラーコードで、errno.hで定義されている。このエラーコードは現在、ioctl(入出力制御)システムコールで無効なioctl番号が指定されたことを示すために使用されている。
詳細
このエラーコードは、初期のUNIXに由来する。バージョン6以前のUNIXにおける入出力制御は、gttyおよびsttyシステムコールを通じて、テレタイプ(TTYと略される)に代表されるシリアル接続された端末デバイスに限定されていた[2]。端末でないデバイスでこれらのシステムコールを使おうしたときに、ENOTTYエラーが発生した。stty/ttyシステムコールが、より一般的なioctl(入出力制御)システムコールに置き換えられても、ENOTTYエラーコードは維持された。
初期のコンピュータでは、電気機械式のタイプライターが端末として使われていた[3][4]。現代のUNIXシステムで広く使われている"TTY"という略語は、"teletypewriter"(テレタイプライター)の略である。例えば、SIGHUPシグナルの本来の意味は、それを使用するテレタイプライターの電話線を切る(hung up)ことである。「テレタイプ」はAT&Tの子会社であるテレタイプ社の登録商標であるため、それを回避するために「タイプライター」という一般名詞に置き換えたものと見られる。
POSIXでは、ENOTTYを"not a terminal"(端末ではない)という意味とすることで、この問題を回避している[5]。
ioctlは現在、端末以外の機器にも対応しているため、システムによっては"inappropriate ioctl for device"(デバイスに対する不適切なioctl)のような別のメッセージを表示することもある[6][7]。
発生
プログラムがioctlを発行しなくても、このメッセージが発生する場合がある。それは、isatty()ライブラリルーチンによるものである。エラーコードerrnoは、システムコールが失敗したときにのみ設定される。C標準I/Oライブラリが最初に行うシステムコールの一つがisatty()コールであり、プログラムが人間によって対話的に実行されているのか(この場合isatty()は成功し、ライブラリは出力を一度に一行ずつ書くので、ユーザーはテキストの流れを見ることができる)、あるいはパイプラインの一部として実行されているのか(この場合、効率化のためにテキストをまとめて書く)を判断するために使用される。システムコールとは関係のない理由でライブラリルーチンが失敗した場合(例えば、passwdファイルにユーザ名が見つからなかった場合など)、(経験の浅いプログラマが)失敗のたびにいちいち通常のエラー報告ルーチンperror()を呼び出していると、残ったENOTTYによって全く不適切な"not a typewriter"エラーが表示されることになる。
かつて、UNIXのメールサーバプログラムsendmailには長期に渡りこのバグがあった[8]。他のシステムからメールが配信されるとき、メールプログラムは非対話的に実行されていた。宛先アドレスがローカルで、ローカルのパスワードファイルにないユーザー名を参照していた場合、メールの送信者に対し、「送信先はタイプライターではない」という通知が送信されていた。
脚注
- ^ “What does ENOTTY stand for?” (英語). www.abbreviations.com. 2020年7月16日閲覧。
- ^ “Version 6 UNIX manual, section 2, system calls”. 2021年11月13日閲覧。
- ^ Unix Programmer's Manual. (November 3, 1971)
- ^ RFC 1, Host Software, Steve Crocker (7 April 1969). Page 3, section "Simple use".
- ^ “The Open Group Base Specifications Issue 7, 2018 edition/IEEE Std 1003.1-2017: isatty”. 2021年11月13日閲覧。
- ^ “OpenBSD manual: intro, errno — introduction to system calls and error numbers”. 2021年11月13日閲覧。
- ^ “FreeBSD manual: intro -- introduction to system calls and error numbers”. 2021年11月13日閲覧。
- ^ “A/UX: mail and "not a typewriter" (2/95)”. support.apple.com (1995年2月27日). 2021年11月13日閲覧。
関連項目
外部リンク
ウィキメディア・コモンズには、Not a typewriterに関するカテゴリがあります。
「Not a typewriter」の例文・使い方・用例・文例
- MondayはMon.と略される
- 「happy」という語ではアクセントは第1音節にある
- 米国のCongressは英国のParliamentに相当する
- 7はJanuaryseventhと読む
- Haltはドイツ語で「止まる」という意味だ
- 彼はよくillegalという単語のつづりを間違う
- という文は“I"のあとに“am"を補って考える
- flavourはflavorの別のつづり方である
- また、明日は休みを取ると思うので、その場合はあなたにPutnam自動車のLyle氏に朝一番で電話をかけて、11:00 の訪問の予定を延期してもらいたいです。
- バンクーバー― マレーシアに拠点を置くBaronホテルグループはHoward Hotels Internationalを買収する交渉を行っている。
- Baronは、アジアの主要都市に100 を超えるホテルを構える、ビジネスホテルの巨大企業で、高級ホテル市場への進出を目指している。
- Baronが企業買収に成功すれば、同社は、名声を確立したHoward Hotelsブランドやその豪華なおもてなしのノウハウを手に入れることになる。
- Howard Hotelsは、著名なカナダの非上場高級ホテルチェーンで、今のところ、世界展開を手助けしてくれる提携企業を見つけられずにいる。
- 買収がうまくいけば、BaronはHoward Hotelsの株式の65%を所有することになる。
- 家庭用品小売業のPatio社は昨日、住宅設計と建設事業へ参入することを発表した。
- Patio社は、外国で作られた家庭用品や家具、装飾用品を輸入する小さな貿易会社として20 年前に創業した。
- 同社には、都会の環境に田舎の生活を取り入れたいと思う中流階級の都会人の間に数多くの支持者がおり、最高経営責任者のByron Coxによると、「住宅設計や建設は弊社のような企業にとって当然の結果だ。弊社のお客様は、彼らが所有するPatioの商品と調和する建物を求めている」とのことだ。
- Patio初の主要な建設プロジェクトはGolden Bayを見下ろす20戸の分譲マンションになるだろう。
- 今年の1 月まで、「Premiumアイスクリーム」で知られるErnesto Dairyの副社長だったCarla Starkが、4 月20 日付けでHolman Health社の会長に就任することが今日発表された。
- Holman Healthは栄養補助食品業界の巨大企業で、最高経営責任者であるBud Rollinsを交代させようとしているが、Bud Rollinsは機会があるたびに、彼と同社取締役会とがあらゆる点で合意できるようには思えないと公言していた。
- Not a typewriterのページへのリンク