DDN を排除する処理の追加2005年11月25日 15時20分44秒

Windows 環境では、DDN (DOS Device Name) のファイルを mknmz で処理すると不具合が生じる可能性が高いので、これを排除するようにしました。

http://support.microsoft.com/kb/256015 によると、標準的なデバイス名は以下のものとなります。

CON、AUX、NUL、PRN、LPT1 ~ LPT4、COM1 ~ COM4、CLOCK$、XMSXXXX0

pl/conf.pl.in に標準的な DDN の内容

$DENY_DDN = "con|aux|nul|prn|lpt[1-9]|com[1-9]|clock\$|xmsxxxx0";

を追加しました。 (LPTX, COMX に関しては、拡張ボードを追加することで9まで使用していることも多いため、9までにしました。)

利用環境に応じてmknmzrcをカスタマイズすることで、デバイス名の追加/修正ができます。

これは、 「DOS デバイス名は、アプリケーション開発メーカーが独自に作成し 予約語にできるものです。」 ということで、全ての DOS デバイス名を把握することは不可能なためです。

なお、QueryDosDevice で実行環境のDDNを取得できるのかと思いましたが、ちょっと違うようなので、API で取得する方法はやめました。

また http://www.samba.gr.jp/ml/article/samba-jp/msg09345.html によると、標準とみなせるデバイス名はもっと多いのですが、これらについては $DENY_DDN に利用者の方が追加していただくことで対応可能なので、デフォルトにはしていません。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://namazu.asablo.jp/blog/2005/11/25/154840/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。