mkdir

MKDIR(2)                    Linux Programmer's Manual                   MKDIR(2)



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

書式
       #include <sys/types.h>
       #include <fcntl.h>
       #include <unistd.h>

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

説明
       mkdir pathname で示される名前のディレクトリを作成する。

       mode には作成されるディレクトリの許可(permission)を設定する。この設定は通常 通りプロセスの umask
       によって修正され、作成されたファイルの許可(permission)は (mode & ~umask) となる。

       新しく作成されたディレクトリの所有者はプロセスの実効 UID にセットされ
       る。もしそのファイル(訳注:この場合ディレクトリと考えられる)の入ってい るディレクトリに対して set group id
       ビットがセットされている場合、また もしファイルシステムが BSD のグループセマンティクスに従ってマウントさ
       れている場合、新しいディレクトリのグループ所有権はその親ディレクトリの グループ所有権を継承する(親ディレクトリと同じになる)。またそうでなかっ
       た場合はプロセスの実効 GID の所有となる。

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


返り値
       mkdir は成功した場合 0 を、失敗した場合 -1 を返す(失敗した場合 errno がエラーの内容にしたがってセットされる)。

エラー
       EEXIST pathname が既に存在している(但しそれがディレクトリであるとは限らない)。

       EFAULT pathname がユーザのアドレス空間外を指している。

       EACCES プロセスが親ディレクトリへの書き込み許可を持たない。もしくは pathname 中のディレクトリのどれかに search
              (execute) 許可(permission)が無い。

       ENAMETOOLONG
              pathname が長過ぎる。

       ENOENT pathname 中で指定されているディレクトリが存在しないか、またはリンク先の無いシン ボリックリンクである。

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

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

       EROFS  pathname は読み出し専用ファイルシステム上のファイルを指しているにもかかわらず、
              そのファイルに対して書き込みの要求がされている。

       ELOOP  pathname 中に循環シンボリック・リンクが含まれる。例えば、 自分自身を参照するシンボリック・リンクなど。

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

準拠
       SVr4, POSIX, BSD, SYSV, X/OPEN。SVr4 には他に EMULTIHOP と ENOLINK エ
       ラーコードについての記述がある。POSIX.1 には ELOOP についての記述はない。

       NFS に基づくプロトコルには多くの不適切な物が存在し、 mkdir に影響を与える。

関連項目
       read(2), write(2), fcntl(2), close(2), unlink(2), open(2), mknod(2),
       stat(2), umask(2), mount(2), socket(2), socket(2), fopen(3).



Linux 1.0                         29 March 1994                         MKDIR(2)