mkdir
関数は多くの理由で失敗する可能性があります:
[EACCES] パス プレフィックスのコンポーネントで検索権限が拒否されているか、作成するディレクトリの親ディレクトリで書き込み権限が拒否されています。
[EEXIST] 指定されたファイルが存在します。
[ELOOP] パス引数の解決中に検出されたシンボリック リンクにループが存在します。
[EMLINK] 親ディレクトリのリンク数が {LINK_MAX} を超えます。
[ENAMETOOLONG] パス引数の長さが {PATH_MAX} を超えているか、パス名コンポーネントが {NAME_MAX} を超えています。
[ENOENT] path で指定されたパス プレフィックスのコンポーネントが既存のディレクトリを指定していないか、パスが空の文字列です。
[ENOSPC] ファイル システムには、新しいディレクトリの内容を保持するため、または新しいディレクトリの親ディレクトリを拡張するための十分なスペースがありません。
[ENOTDIR] パス プレフィックスのコンポーネントがディレクトリではありません。
[EROFS] 親ディレクトリは読み取り専用ファイル システムに存在します。mkdir() 関数は、次の場合に失敗することがあります。
[ELOOP] パス引数の解決中に {SYMLOOP_MAX} を超えるシンボリック リンクが検出されました。
[ENAMETOOLONG] パス引数の解決でシンボリック リンクに遭遇した結果、置換されたパス名文字列の長さが {PATH_MAX} を超えました。
関数が返された場合、-1
を確認せずに特定のエラーを確認できないerrno
ため、それが推奨されます。