ホスト名の有効な文字を確認しましたか? および関連する wiki ページ。私が確認できていないのは、拡張ホスト名を持つ Windows マシンを使用している場合、gethostname() は名前の ToAscii バージョンまたは UTF8 文字列を返すかということです。
そしてさらに重要なことは、
gethostname(buffer,LEN);
mkdir(buffer, mode);
無効な名前が原因で失敗したことはありますか?
ホスト名の有効な文字を確認しましたか? および関連する wiki ページ。私が確認できていないのは、拡張ホスト名を持つ Windows マシンを使用している場合、gethostname() は名前の ToAscii バージョンまたは UTF8 文字列を返すかということです。
そしてさらに重要なことは、
gethostname(buffer,LEN);
mkdir(buffer, mode);
無効な名前が原因で失敗したことはありますか?
DNS ホスト名と NetBIOS ホスト名に関して、MSDN のホスト名に関する有益な情報があるようです。ホスト名が実際に UTF-8 である可能性があることを示唆しているようですが、決定的ではありません。
そのため、gethostname から UTF-8 を取得した場合は、ディレクトリを作成する Windows 関数を呼び出すために、おそらく UTF-16 (またはシステムの既定のコードページ) に変換する必要があります。また、ファイルシステムが異なれば、文字セットの規則も異なることに注意してください。NTFS は Unicode を適切に処理しますが、FAT は処理しません。
ローカル マシンの名前を ASCII 以外の文字 (システムの既定のコードページにない文字も含む) に変更してみてください。