Provided by: manpages-ko_20050219-2_all bug
        #include <fcntl.h>
        #include <unistd.h>
 
        int mknod(const char *pathname, mode_t mode, dev_t dev);
        장치 특수 파일 또는 named 파이프) 를 생성한다.
 
        mode는 생성될 노드의 타입과 소유권을 명시한다.
 
        이는 새로운 노드의 소유권과  아래 나영 파일  타입중  하나의  조합이
        (비트연산 OR를 사용해 되어야한다.
 
        소유권은  일반적으로  프로세스의  umask에  의해 수정된다: 생성된 노드의
        소유권은 (mode & ~umask)이다.
 
        일반 파일 (빈 상태로 만들어진다), 문자 특수 파일, 블럭 특수  파일  또는
        FIFO  (named 파이프)를 생성하기 위한 파일 타입은 각각 S_IFREG, S_IFCHR,
        S_IFBLK 그리고 S_IFIFO 이고, 일반 파일을 생성하기 위해 0도 가능하다.
 
        만약 파일 타입이 S_IFCHR 또는 S_IFBLK이면 dev는 새로 생성될  장치  특수
        파일의  주(major), 부(minor)번호이어야만 한다; 그렇지 않으면, 무시된다.
 
        새로 생성된 노드는 프로세스의 유효 사용자 ID가 소유권을  갖는다.   만약
        노드가  위치한  디렉토리에  set-group-id  비트가  설정되어 있거나, 파일
        시스템이 BSD  그룹  의미(semantic)에  따라  마운트되어  있다면,  새로운
        노드는  자신의  부모  디렉토리로  부터  그룹  소유권을 상속받을 것이다;
        그렇지 않으면 프로세스의 유효 그룹 ID가 그룹 소유권을 갖는다.
        적절히 설정된다).
               프로세스의 권한이 슈퍼유저(superuser)가 아니다; 또한  pathname이
               포함된 파일시스템이 만드려고 하는 노드의 타입을 지원하지 않는다.
 
        EINVAL mode가 일반 파일, 장치 특수 파일 또는 FIFO이외의 것을 생성하도록
               요구한다.
 
        EEXIST pathname이 이미 존재한다.
 
        EFAULT pathname이 접근할 수 없는 주소 영역을 가르킨다.
 
        EACCES 부모  디렉토리가  프로세스에게 쓰기를 허용하지 않거나 pathname에
               있는  디렉토리중  하나가  프로세스에게   탐색(실행)을   허용하지
               않는다.
 
        ENAMETOOLONG
               pathname이 너무 길다.
 
        ENOENT pathname의 디렉토리가 존재하지 않거나 끊어진 심볼릭 링크이다.
 
        ENOTDIR
               pathnam디렉토리가 실제는 디렉토리가 아니다.
 
        ENOMEM 사용할 수 있는 커널 메모리가 부족하다.
 
        EROFS  pathname이 읽기 전용 파일시스템의 파일을 가르킨다.
 
        ELOOP  pathname을 찾는 도중 너무 많은 심볼릭 링크가 존재한다.
 
        ENOSPC pathname이  속한  장치에 새로운 노드를 만들기 위한 공간이 충분치
               않다.
        4.4BSD.   리눅스  버전은  SVr4  버전과는 다르게 파이프를 생성할 때 root
        권한이 필요없고, EMULTIHOP, ENOLINK, EINTR과 같은 에러가 기술되어  있지
        않다.
        일반 파일을 생성하는 것은 불가능하다.
 
        NFS의 프로토콜에는 많은 버그가 존재한다.  이런  버그는  mknod에  영향을
        미친다.
        stat(2), umask(2), mount(2), socket(2), fopen(3).