次の問題が発生しました。Unixプログラミング環境、KernighanとPikeによるUnixクラシックブック(1984年版ISBN:0-13-937699-2の79ページで次のテキストが見つかりました):
練習3-6。(トリックの質問)ファイル名に/をどのように入れますか(パスコンポーネントを区別せずに/を使用しますか?)
私はエンドユーザーでプログラマーとして長年Linuxを使用してきましたが、この質問に答えることはできません。持つ絶対ファイル名にスラッシュを追加することはカーネルでは厳密に禁止されています。ブロックデバイスアクセスでファイルシステムにパッチを適用したり、Unicodeで同様の文字を使用したりできますが、これは解決策ではありません。
私はLinux≠Unixを知っていますが、システムはパスから明示的にディレクトリ階層を抽出できる必要があるため、同じ原則を適用する必要があります。
KerniganとPikeがこの質問をしたときに何を考えたのか知っている人はいますか?答えは何ですか? 「トリック」とはまさに何ですか?それとも、元のUnixシステムでは何とかスラッシュをエスケープできましたか?
修正する:
この問題についてBrian Kernighanに連絡しましたが、彼の答えは次のとおりです。
答えは「あなたはできません」です。
だからティモシー・マーティンは正しいと緑のダニを得た。
ベストアンサー1
おそらく答えは、次のような困難な質問に対する答えの一部です。
象から降りる方法は? 知りません。 ガチョウから得ます。
Brian W. KernighanとRob Pikeのプログラミング実習(第1章6ページ)から抜粋。 158:
Steve BourneがUnixシェル(後でBourneシェルとして知られている)を作成したときに、\ 0とスラッシュを除いて、1バイトあたり1文字の値で単一の文字名を持つ254個のファイルを含むディレクトリを作成しました。 Unixファイル名。