MKFIFO(2)

명칭
mkfifo - fifo 파일을 작성한다

프로그램 라이브러리
libc

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

해설
mkfifo() (은)는, path (이)라는 이름의 새로운 fifo 파일을 작성합니다. 액세스 허가는 mode 에 의해 지정되어 호출 프로세스의 umask(2) 의 제약을 받습니다.

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

반환값

에러
mkfifo() (은)는, 다음의 경우에 처리를 실패해, fifo 는 작성되지 않습니다.

[ENOTSUP]
    커널이 fifo 를 서포트하도록(듯이) 구성되어 있지 않습니다.

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

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

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

[EACCES]
    지정된 패스에는, 검색이 허가되어 있지 않은 디렉토리가 포함되어 있습니다.

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

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

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

[ENOSPC]
    새로운 fifo 용의 엔트리를 배치하는 디렉토리를 확장할 수 없습니다. 디렉토리가 들어가 있는 파일 시스템에 빈 용량이 남아 있지 않습니다.

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

[EDQUOT]
    새로운 fifo 용의 엔트리를 배치하는 디렉토리를 확장할 수 없습니다. 디렉토리가 들어가 있는 파일 시스템상의 디스크 블록의 유저의 쿼터가 고갈했습니다.

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

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

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

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

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

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