MKDIR(2)

명칭
mkdir - 디렉토리 파일을 작성한다

프로그램 라이브러리
libc

서식
<sys/types.h> <sys/stat.h> int mkdir(const char *path, mode_t mode)

해설
디렉토리 path 하지만, mode 에 의한 지정에 호출해 프로세스의 umask(2) 그리고 제약을 더한 액세스 허가로 작성됩니다.

디렉토리의 소유자 ID 는, 프로세스의 실효 유저 ID 로 설정됩니다. 디렉토리의 그룹 ID 는, 그 디렉토리가 작성된 친디렉토리의 그룹 ID 로 설정됩니다.

반환값

에러
mkdir() (은)는 다음의 경우, 처리에 실패해 디렉토리는 작성되지 않습니다.

[ENOTDIR]
    패스의 원가요소중에 디렉토리 이외의 것이 포함되어 있습니다.

[ENAMETOOLONG]
    패스명의 원가요소가 255 캐릭터를 넘고 있는지, 또는 패스명 전체가 1023 캐릭터를 넘고 있습니다.

[ENOENT]
    패스의 원가요소가 존재하지 않습니다.

[EACCES]
    지정된 패스에는, 검색이 허가되어 있지 않은 디렉토리가 포함되어 있습니다. 또는, 작성하는 디렉토리의 친디렉토리에 대한 기입 권한이 거부되었습니다.

[ELOOP]
    패스명을 변환할 경우에 검출된 기호 연결이 너무 많습니다.

[EROFS]
    지정된 파일은 읽기 전용 파일 시스템상에 있습니다.

[EEXIST]
    지정의 파일이 벌써 존재합니다.

[ENOSPC]
    새로운 디렉토리를 작성할 수 없습니다. 그 디렉토리를 만드는 용량이 파일 시스템에 남아 있지 않습니다.

[ENOSPC]
    디렉토리를 작성하는 파일 시스템상에 미사용의 inode 가 없습니다.

[EDQUOT]
    새로운 디렉토리를 작성할 수 없습니다. 디렉토리를 만드는 파일 시스템상의 디스크 블록의 유저의 쿼터가 고갈했습니다.

[EDQUOT]
    디렉토리를 작성중의 파일 시스템상의 유저의 inode 의 쿼터가 고갈했습니다.

[EIO]
    디렉토리 엔트리의 작성중, 혹은 inode 를 할당중에 입출력 에러가 발생했습니다.

[EIO]
    파일 시스템에 읽고 쓰기하고 있는 동안에 입출력 에러가 발생했습니다.

[EFAULT]
    path (은)는, 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다.

관련 항목
chmod(2), stat(2), umask(2)

표준
mkdir() 함수는 p1003.1-90 에 준거하고 있습니다.