2012-04-20 8 views
1

私はValid characters of a hostname?と関連するwikiページを読みました。私が確認できなかったことは、拡張ホスト名を持つWindowsマシン上にいる場合、gethostname()は名前のToAsciiバージョンまたはUTF8文字列を返しますか?ホスト名は有効なWindowsディレクトリ名であることが保証されていますか?

そして、もっと重要なのは

gethostname(buffer,LEN); 
mkdir(buffer, mode); 

は今までに無効な名前が原因で失敗することができますか?

+0

"失敗は常にオプションです。" gethostname/mkdirが名前のために失敗しない場合は、別の理由で失敗する可能性があります。 – theglauber

+0

確かに明確な質問です。 – Thomas

答えて

0

DNSホスト名とNetBIOSホスト名に関して、MSDNにuseful information on hostnamesがあるようです。ホスト名は実際にはUTF-8かもしれないが、それは決定的ではないことを示唆しているようだ。

gethostnameからUTF-8を取得した場合は、ディレクトリを作成するWindows関数を呼び出すために、おそらくUTF-16(またはシステムのデフォルトのコードページ)に変換する必要があります。また、異なるファイルシステムには文字セットのルールが異なります。 NTFSはUnicodeをきれいに扱いますが、FATはそうではありません。

ローカルマシンの名前をASCII以外の文字(システムのデフォルトのコードページにない文字など)で変更することもできます。

+0

まあ、私は決定的な答えを期待していましたが、あなたは良い情報/アイデアをくれましたので、私は先に進んであなたにそれを与えます。ありがとう。 – Thomas

関連する問題