DDN を排除する処理の追加
2005-11-25


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

[URL] によると、標準的なデバイス名は以下のものとなります。

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 で取得する方法はやめました。

また [URL] によると、標準とみなせるデバイス名はもっと多いのですが、これらについては $DENY_DDN に利用者の方が追加していただくことで対応可能なので、デフォルトにはしていません。

[開発]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット