質問: どの文字がms-dosファイル名に無効ですか? 私はx86-16アセンブリ言語でファイル名の入出力手続きを書いています。キーボードから8文字(長いファイル名をサポートする必要はありません)を取り、画面上のテキスト入力フィールドにそれらを印刷します。現時点で私は数字、大文字/小文字、アンダースコア、そしてハイフンを許可しています。すべての合法的な記号を許可したいのですが、禁止文字の公式リストが見つかりません。常識ではスラッシュは違法であると言われていますが、推測しなければならない場合は、プラス文字が正当であると言えます。 (編集:そうではありません!)私のコードではピリオドとファイル拡張子の追加を自動的に処理しているので、ピリオド文字は無視しています。
回答: 厳密に言えば、ms/pc/dr-dosアプリケーションプログラマとしては、オペレーティングシステムにこの情報を要求することになっています。 ax = 0x6505を指定したint 0x21は、使用している国とコードページのいわゆるfchar nlsテーブルへのポインタを返します。この表はファイル名を終える文字の範囲そしてそれ以上の文字のセットをリストしたものです。理論的には、国やコードページによって異なります。しかし、それが正式にos/2制御プログラムapiに引き継がれなかったという事実と、 freedosがすべてのコードページと国にわたって1つのテーブルを持つという事実 実際にはほとんど不変です。参考文献 http://ctyme.com/intr/rb-3163.htm http://ctyme.com/intr/rb-3163.htm#table1754