アカウント名:
パスワード:
10年以上windows使ってるけど初めて知ったわ拡張子ついててもダメなんだな
古いWindowsのソフトは動かなかったりするのにそんな盲腸みたいな部分の互換性は残ってるという……
例えばシリアル ポートを列挙するアプリがx86とx64の両方をサポートしていて、COMおよびCOM0からCOM9までをCreateFile APIで開いて存在を確認するなんていうコードが残っていたりするのです。そうすると、後方互換性を維持するためにMS-DOS互換の挙動を残さざるを得ないといったようなことが起こるのです。
Rustの今回の修正ではnul以外も対応されているので見てみると参考になると思いますよ。
そうですねね。というわけで、Microsoftが示している現行Windowsの予約済みのファイル名が載っているページを示しますね:
Naming Files, Paths, and Namespaces (Windows) [microsoft.com]
これによれば、
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9
とのこと。
Windowsをサポートしているということであれば、これをNGとす
ほかにも、コンソール入力・出力のCONIN$とCONOUT$なんかもあります: CreateFile function (Windows) [microsoft.com]。厳密には、予約済みファイル名とは異なる扱いなのかもしれませんが、実用上はCON~LPT9と同じ予約済みファイル名として扱うのが良いと思います。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond
すごい (スコア:0)
10年以上windows使ってるけど初めて知ったわ
拡張子ついててもダメなんだな
Re: (スコア:0)
MS-DOS 2.0 で階層ディレクトリがサポートされたが、デバイスファイルは、互換性として階層なしのファイル名だけで操作できるままになった。
現代まで、その部分の互換を引き続いてる。
機能は追加されたが削除されてないので、当時のバッチファイルが今でも動くのは、すごいことだけど、本当に必要なのかは疑問もあるな。
Re: (スコア:0)
古いWindowsのソフトは動かなかったりするのに
そんな盲腸みたいな部分の互換性は残ってるという……
Re: (スコア:0)
例えばシリアル ポートを列挙するアプリがx86とx64の両方をサポートしていて、COMおよびCOM0からCOM9までをCreateFile APIで開いて存在を確認するなんていうコードが残っていたりするのです。そうすると、後方互換性を維持するためにMS-DOS互換の挙動を残さざるを得ないといったようなことが起こるのです。
Rustの今回の修正ではnul以外も対応されているので見てみると参考になると思いますよ。
Re: (スコア:0)
Re: (スコア:0)
そうですねね。
というわけで、Microsoftが示している現行Windowsの予約済みのファイル名が載っているページを示しますね:
Naming Files, Paths, and Namespaces (Windows) [microsoft.com]
これによれば、
とのこと。
Windowsをサポートしているということであれば、これをNGとす
Re:すごい (スコア:1)
ほかにも、コンソール入力・出力のCONIN$とCONOUT$なんかもあります: CreateFile function (Windows) [microsoft.com]。厳密には、予約済みファイル名とは異なる扱いなのかもしれませんが、実用上はCON~LPT9と同じ予約済みファイル名として扱うのが良いと思います。