mknod MYFIFO p mkfifo a=rw MYFIFO위의 두 명령어는 한기지 예외를 제외하고 동일한 동작을 수행한다. mkfifo 명령어는 파이프를 만든 후 FIFO 파일에 대해 직접 허가사항(permission)을 바꾸기 위한 항목을 제공한다. mknod의 경우는 chmod 명령어의 빠른 호출이 필요할 것이다.
FIFO 파일은 긴 디렉토리 리스트(long directory listing)에서 보여지는 "p" 지시자에 의해 물리적인 파일 시스템에 재빨리 알려진다.
$ ls -l MYFIFO prw-r--r-- 1 root root 0 Dec 14 22:15 MYFIFO|파일명 다음에 있는 수직선("pipe sign")에 주목하라.
C로 FIFO를 만들기 위해, mknod() 시스템 호출을 사용할 수 있다.:
LIBRARY FUNCTION: mknod(); PROTOTYPE: int mknod( char *pathname, mode_t mode, dev_t dev); RETURNS: 0 on success, -1 on error: errno = EFAULT (pathname invalid) EACCES (permission denied) ENAMETOOLONG (pathname too long) ENOENT (invalid pathname) ENOTDIR (invalid pathname) (see man page for mknod for others) NOTES: Creates a filesystem node (file, device file, or FIFO)
mknod("/tmp/MYFIFO", S_IFIFO|0666, 0);이 경우, "/tmp/MYFIFO" 파일은 FIFO 파일처럼 만들어 진다. 다음처럼 지정된 umask에 의해 영향을 받는다 하더라도 요청된 허가사항(permission)은 "0666"이다.:
final_umask = requested_permissions & ~original_umask일반적인 방법은 일시적으로 umask 값을 공격하기 위해 umask() 시스템 호출을 사용하는 것이다.:
umask(0); mknod("/tmp/MYFIFO", S_IFIFO|0666, 0);게다가, 디바이스 파일을 만들고 있지 않다면 mknod()의 세번째 아규먼트는 무시된다. 이런 경우에는 디바이스 파일의 큰쪽과 작은 쪽의 번호를 지정해 주어야만 한다.
Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved
Email To:Webmaster ,
Another address
LAST UPDATE Nov 15,1997
Created Nov 15,1997