私は少し問題があります。私は自分のCコードまたはC++からディレクトリを作成する必要がありますが問題ではありません。 しかし、ディレクトリ名には ':'、 ''、 ''などの文字を含める必要があります。私はmkdir()
関数で作成しようとすると、私はEINVALエラーを取得しようとすると、一般的に現在の時間、 しかし、system("mkdir ...")
からすべてが大丈夫です。 この問題を解決するにはどうすればよいですか?mkdir、パス名のシンボル
ありがとうございます!
私は少し問題があります。私は自分のCコードまたはC++からディレクトリを作成する必要がありますが問題ではありません。 しかし、ディレクトリ名には ':'、 ''、 ''などの文字を含める必要があります。私はmkdir()
関数で作成しようとすると、私はEINVALエラーを取得しようとすると、一般的に現在の時間、 しかし、system("mkdir ...")
からすべてが大丈夫です。 この問題を解決するにはどうすればよいですか?mkdir、パス名のシンボル
ありがとうございます!
異なるファイルシステムフォーマットでは、有効な文字とは異なる規則があります。 ext2
およびその子孫の場合、ファイル名には'/'
または'\0'
を除く任意の文字を使用できます。
FATファイルシステムとその子孫の場合、無効な文字のリストはより大きく、':'
を含みます。
使用しているファイルシステムのフォーマットを確認して、別のファイルシステムでプログラムを実行してみてください。
'mkdir()'ではなく 'mkdir'シェルで動作するサンプル名を与えることができますか?また、マニュアルページでは、可能なエラーコードの1つとして 'EINVAL'も表示されないので、あなたが見ているのが奇妙になります。 – FatalError
コードスニペットを投稿できますか?おそらくファイル名に特殊文字が正しくエスケープされていないように思えますか? – rfinz
'mkdir()'は成功すると0を返し、エラーの場合は-1は* errno *を設定します。 EINVALは、mkdir()の文書化された* errno *値ではありません。どのフィールドでも固定桁数を使用する場合、区切り文字は多少冗長ではありません。 – Clifford