andの代わりにandtime
のようなわかりにくいシステムコール名を使用する理由は、おそらくUnixやより適しています。それでは、次の点に進みます。なぜ誰かが読むことができるように、ラクダの大文字や少なくとも下線を持たないことをしたいのでしょうか。もちろん、呼び出しにはより多くの文字が含まれますが、コードの読みやすさがより重要であることは、誰もが知っているという事実です。creat
getCurrentTimeSecs
createFile
get_current_time_secs
create_file
cfsetospeed
答え1
これは当時の技術的な限界によるものでした。 POSIX規格は、1970年に誕生したUNIXを参照して1980年代に作成されました。一部のCコンパイラでは、タイムアウト識別子を6〜8文字で指定して、変数と関数の標準名の長さを設定します。
関連質問:
答え2
dr_の言葉が正しいです。しかし、可用性という別の理由があります。過去にはキーボードと同じくらい快適なタイピングツールはありませんでした。運が良ければ、昔ながらのタイプライターに似たものがあるでしょう。運が悪い場合は、物理的な物理的な作業を必要とするシステムに対処するか(「キー」を押すのに多くの力が必要です)、手動でカードに穴を開ける必要があります。
これは、6〜8文字の制限内でもコマンドをできるだけ短く保ちたいという意味です。そのため、ls
代替list
とcreat
代替がありますcreate
。その時代のコードはa
、x
そして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
。
また、システムコール名が非常に短い主な理由は、〜にこだわる以前のバージョンと互換性があります。例えばgettimeofday
。clock_gettime
time
(今日でもforループのwhateverIndex
代わりにi
インデックスを使用すると、自動コードレビューは失敗します。私のもの本;-)
答え4
Dennis Ritchie は、Fortran に不要なリンカー機能に依存しないように C に制限を設定しました。したがって、外部名は6文字に制限されます。