2

ホスト名の有効な文字を確認しましたか? および関連する wiki ページ。私が確認できていないのは、拡張ホスト名を持つ Windows マシンを使用している場合、gethostname() は名前の ToAscii バージョンまたは UTF8 文字列を返すかということです。

そしてさらに重要なことは、

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

無効な名前が原因で失敗したことはありますか?

4

1 に答える 1

0

DNS ホスト名と NetBIOS ホスト名に関して、MSDN のホスト名に関する有益な情報があるようです。ホスト名が実際に UTF-8 である可能性があることを示唆しているようですが、決定的ではありません。

そのため、gethostname から UTF-8 を取得した場合は、ディレクトリを作成する Windows 関数を呼び出すために、おそらく UTF-16 (またはシステムの既定のコードページ) に変換する必要があります。また、ファイルシステムが異なれば、文字セットの規則も異なることに注意してください。NTFS は Unicode を適切に処理しますが、FAT は処理しません。

ローカル マシンの名前を ASCII 以外の文字 (システムの既定のコードページにない文字も含む) に変更してみてください。

于 2012-04-20T18:20:52.637 に答える