ベンダー拡張に「-W」が予約されているのはなぜですか?

ベンダー拡張に「-W」が予約されているのはなぜですか?

POSIX規格が必要な理由-Wベンダー拡張を維持するオプションシステムユーティリティ?なぜ「W」という文字が使われたのかわかりません。 「V」(の場合Vendor)がもっと意味があるかもしれません。

おそらく、この質問はRetrocomputing SEに移動する必要があるようです。

ベストアンサー1

この条項はシングルUnix v2(1997)とシングルUnix v3(2001).これは真空で行われるのではなく、以前の規範と既存の慣行を考慮する必要があります。一部のコマンドに文字がすでに割り当てられている場合は、既存のコマンドを継承する必要があり、この指示に従うことはできません。特定の文字がPOSIXで指定されていない人気のあるプログラムまたはPOSIXプログラムの人気のある実装ですでに使用されている場合、後でそのユーティリティを指定するのが難しくなり、ユーザーが次の文字を覚えにくくなります。意味は似ていますが、コマンドオプションによって文字が異なります。

SUSv2に文書化されているオプションを確認してください。

grep -h -Po '(?<=^<dt><b>-)[[:alnum:]]' /usr/share/doc/susv2/susv2/xcu/*.html | sort | uniq -c

ほとんどの大文字と同様に、すべての小文字が1つ以上のユーティリティで埋められていることがわかります。無料の文字は、-Bとです。-J-K-Y-Z

-V2つのコマンドでのみ機能します。

  • commandのバリエーションです-v(追加 - 誰が最初に追加したのかわかりません。おそらくUnix仕様のワークグループまたはkshのいずれかです。元の定義が満足できなかったからです)。-v
  • disここでは、印刷ユーティリティのバージョンを選択できます。

POSIXはベンダーを選択できますが、-Vこれはcommand指示に従わないことを意味します。これは移植性のために作成されたので迷惑になる可能性がありますcommand(両方の動作はシェル組み込みと外部ユーティリティの違いを防ぎ、同様に機能しますが、type出力形式の可変性がないためです)。さらに、このプログラムは「バージョン」のための唯一のプログラムから離れていますdis-Vほとんどは基本システムの一部ではないため、POSIXでエンコードされません。基本システムの場合は、基本システムのバージョン番号を使用するだけです。-VPOSIXの内部と外部の両方で例外が多すぎるため、悪い選択にはなりません。

-W撮影したばかりcccc実装は、ベンダー間で大きく異なる傾向があり(特に予想されたC方言に関して)、標準の将来のバージョンから削除されました(などに置き換えられますc89c99。新しい意味ccを与えても、-W標準ユーティリティが排除されるわけではありません。標準の次のバージョンにはもはや意味がないからです。私が知っている限り、これはPOSIX以外のユーティリティでは特に一般的なオプション文字の選択ではないので、オプションです。

-Wまったく使われない別の大文字はどうですか?確かではありません。ランダムかもしれませんが、突然現れるわけではありません。オプションは、多重化を可能にする特定の構造を持つ必要があるパラメータ-Wによってエンコードされますcc。オプションが適用される「サブドメイン」(コンパイルステップ)を指定する文字で始まり、その後に「サブドメイン別」オプションが続く必要があります。 POSIX.1-2001は実装固有のオプションに1文字しか残らないため、複数の実装固有の動作変更を許可するにはこの文字を再使用する必要があります。したがって、-Wオプションがどのように使用されるかccについての実装固有のインスピレーションがあります。-W正確な構文が必ずしも必要ではありませんが、一種の「サブオプション」を表す接頭辞のある引数を取る基本原則です。

おすすめ記事