UNIX / POSIXシステムコール名を復号化するのが難しいのはなぜですか?

UNIX / POSIXシステムコール名を復号化するのが難しいのはなぜですか?

andの代わりにandtimeのようなわかりにくいシステムコール名を使用する理由は、おそらくUnixやより適しています。それでは、次の点に進みます。なぜ誰かが読むことができるように、ラクダの大文字や少なくとも下線を持たないことをしたいのでしょうか。もちろん、呼び出しにはより多くの文字が含まれますが、コードの読みやすさがより重要であることは、誰もが知っているという事実です。creatgetCurrentTimeSecscreateFileget_current_time_secscreate_filecfsetospeed

答え1

これは当時の技術的な限界によるものでした。 POSIX規格は、1970年に誕生したUNIXを参照して1980年代に作成されました。一部のCコンパイラでは、タイムアウト識別子を6〜8文字で指定して、変数と関数の標準名の長さを設定します。

関連質問:

答え2

dr_の言葉が正しいです。しかし、可用性という別の理由があります。過去にはキーボードと同じくらい快適なタイピングツールはありませんでした。運が良ければ、昔ながらのタイプライターに似たものがあるでしょう。運が悪い場合は、物理的な物理的な作業を必要とするシステムに対処するか(「キー」を押すのに多くの力が必要です)、手動でカードに穴を開ける必要があります。

これは、6〜8文字の制限内でもコマンドをできるだけ短く保ちたいという意味です。そのため、ls代替listcreat代替がありますcreate。その時代のコードはaxそしてiもちろん友達と同じ変数でいっぱいでしたx2。タイピングは多くの作業です。今日では、listIndex以前の「タイピング」よりも少ないエネルギーでタイピングし、i速度もほとんど遅くはありません(特にオートコンプリートなどの追加技術を使用するとさらにそうです)。

本当の質問は - 人気が落ちているにもかかわらず、なぜそれほど多くのUnixイディオムがまだ存在するのかということです。

答え3

他の答えに加えて、Unixは、はるかに冗長な命名規則を使用するMultics、CTSS、およびその他の最新のオペレーティングシステムに対応して開発されたことを指摘したいと思います。次のオペレーティングシステムを体験できます。http://www.multicians.org/devdoc.html。例えば、http://www.multicians.org/mspm-bx-1-00.htmlchange_nameファイル名を変更するコマンドを提供します。 Unix mv

また、システムコール名が非常に短い主な理由は、〜にこだわる以前のバージョンと互換性があります。例えばgettimeofdayclock_gettimetime

(今日でもforループのwhateverIndex代わりにiインデックスを使用すると、自動コードレビューは失敗します。私のもの本;-)

答え4

Dennis Ritchie は、Fortran に不要なリンカー機能に依存しないように C に制限を設定しました。したがって、外部名は6文字に制限されます。

関連情報