mkdir - システムコールの説明 - Linux コマンド集 一覧表
- 名前
- 書式
- 説明
- 返り値
- エラー
- 準拠
- 注意
- 関連項目
名前
書式
#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 の
グループセマンティクスに従ってマウントされている場合には、
新たに作成されたディレクトリのグループ所有権は親ディレクトリの
ものが継承される (親ディレクトリと同じになる)。
それ以外の場合は、グループ所有権はプロセスの実効グループID となる。
もし親ディレクトリに set group ID ビットがセットされていれば新しく作成される
ディレクトリにも set group ID ビットがセットされる。
返り値
mkdir
()は成功した場合 0 を、失敗した場合 -1 を返す (また、
errno
がエラーの内容にしたがって適切に設定される)。
エラー
-
EACCES
-
プロセスが親ディレクトリへの書き込み許可を持たない。もしくは
pathname
中のディレクトリのどれかに検索許可属性が無い
(
path_resolution
(2)も参照)。
-
EEXIST
-
pathname
が既に存在している(ただしそれがディレクトリであるとは限らない)。
pathname
がシンボリックリンクの場合も
(その指定先が存在するかどうかに関らず)エラーになる。
-
EFAULT
-
pathname
がそのプロセスのアクセス可能なアドレス空間の外を指している。
-
ELOOP
-
パス名
pathname
を解決するときに、解決すべきシンボリックリンクが多すぎた。
-
ENAMETOOLONG
-
pathname
が長すぎる。
-
ENOENT
-
pathname
の構成要素のディレクトリのいずれかが存在しないか、
またはリンク先が存在しないシンボリックリンクである。
-
ENOMEM
-
カーネルに、利用できるメモリが不足している。
-
ENOSPC
-
pathname
を含むデバイスに新たにディレクトリを作成する空きが無い。
もしくはユーザーのディスク quota が使い切られているため、
新たにディレクトリを作成することができない。
-
ENOTDIR
-
pathname
中のディレクトリ部分が実際にはディレクトリでない。
-
EPERM
-
pathname
を含むファイルシステムがディレクトリの作成をサポートしていない。
-
EROFS
-
pathname
が読み出し専用ファイルシステム上のファイルを指している。
準拠
注意
Linux では、許可ビット以外で意味を持つのは、S_ISVTX モードビットだけである。
つまり、Linux では作成されたディレクトリは実際には
(
mode
& ~
umask
& 01777)のモードを持つことになる。
stat
(2) を参照のこと。
NFS を実現しているプロトコルには多くの不備が存在し、
それら中には
mkdir
()に影響を与えるものもある。
関連項目
- Linux Tips 関連記事
- Linux Tips(目次)
- Linux ディストリビューション一覧
- rpm のファイル名にあるi386とかi686とは
- 自分のマシンの情報を調べる
- cron の設定
- ssh の root ログインを禁止する
- ssh を、ユーザ、IPでアクセス制限
- 鍵交換方式によるssh接続
- 鍵交換方式によるssh接続( windowsから )
- 複数ファイル内の文字列を置換して上書き保存する
- あるグループをイニシャルグループとするユーザー一覧出力
- 複数ファイルのファイル名を一括変換する
- 連番ファイルをコマンド一発で作成する
- 中身がランダムなファイルを任意のサイズで作成する
- Linux ユーザーアカウントをロック・アンロックする