Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       mkdir - ディレクトリを作成する

書式

       #include <sys/stat.h>
       #include <sys/types.h>

       int mkdir(const char *pathname, mode_t mode);

説明

       mkdir()  は pathname で示される名前のディレクトリを作成しようとする。

       mode 引き数は、作成されたディレクトリの許可属性を決定するのに使われる。 この値に、通常通り
       プロセスの umask  による修正が加えられる。  したがって、作成されたディレクトリの許可属性は
       (mode  &  ~umask  & 0777)  となる。 作成されたディレクトリのその他のモードビットはオペレー
       ティングシステムに 依存する。Linux の場合は、以下の通りである。

       新しく作成されたディレクトリの所有者はプロセスの実効ユーザ ID に設定される。  新たに作成さ
       れたディレクトリが含まれる親ディレクトリに set group ID ビットがセットされていたり、ファイ
       ルシステムが BSD の グループセマンティクス (mount -o bsdgroups あるいは、同じ意味の  mount
       -o grpid)  に従ってマウントされている場合には、 新たに作成されたディレクトリのグループ所有
       権は親ディレクトリの ものが継承される (親ディレクトリと同じになる)。  それ以外の場合は、グ
       ループ所有権はプロセスの実効グループ ID となる。

       もし親ディレクトリに  set group ID ビットがセットされていれば新しく作成される ディレクトリ
       にも set group ID ビットがセットされる。

返り値

       mkdir()  は成功した場合 0 を、失敗した場合 -1 を返す  (また、  errno  がエラーの内容にした
       がって適切に設定される)。

エラー

       EACCES プロセスが親ディレクトリへの書き込み許可を持たない、もしくは  pathname 中のディレク
              トリのどれかに検索許可属性が無い (path_resolution(7)  も参照)。

       EDQUOT ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。

       EEXIST pathname が既に存在している(ただしそれがディレクトリであるとは限らない)。  pathname
              がシンボリックリンクの場合も (その指定先が存在するかどうかに関らず)エラーになる。

       EFAULT pathname がアクセス可能なアドレス空間の外を指している。

       ELOOP  pathname を解決するときに、解決すべきシンボリックリンクが多すぎた。

       EMLINK 親ディレクトリへのリンク数が LINK_MAX を超えてしまう。

       ENAMETOOLONG
              pathname が長すぎる。

       ENOENT pathname  の構成要素のディレクトリのいずれかが存在しないか、 またはリンク先が存在し
              ないシンボリックリンクである。

       ENOMEM カーネルに十分なメモリがない。

       ENOSPC pathname を含むデバイスに新たにディレクトリを作成する空きが無い。

       ENOSPC もしくはユーザーのディスク quota が使い切られているため、  新たにディレクトリを作成
              することができない。

       ENOTDIR
              pathname のディレクトリ部分が実際にはディレクトリでない。

       EPERM  pathname を含むファイルシステムがディレクトリの作成をサポートしていない。

       EROFS  pathname が読み出し専用ファイルシステム上のファイルを指している。

準拠

       SVr4, BSD, POSIX.1-2001.

注意

       Linux   では、許可ビット以外で意味を持つのは、   S_ISVTX   モードビットだけである。   つま
       り、Linux では作成されたディレクトリは実際には (mode & ~umask & 01777)  のモードを持つこと
       になる。 stat(2) を参照のこと。

       NFS  を実現しているプロトコルには多くの不備が存在し、 それら中には mkdir()  に影響を与える
       ものもある。

関連項目

       mkdir(1), chmod(2), chown(2), mkdirat(2), mknod(2), mount(2), rmdir(2), stat(2), umask(2),
       unlink(2), path_resolution(7)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。