파일 서술자
컴퓨터 프로그래밍 분야에서 파일 서술자(file descriptor) 또는 파일 기술자는 특정한 파일에 접근하기 위한 추상적인 키이다. 이 용어는 일반적으로 POSIX 운영 체제에 쓰인다. 마이크로소프트 윈도우와 C 표준 입출력 라이브러리 환경에서 "파일 핸들"(file handle)이라는 말이 선호되지만 후자의 경우 기술적으로 다른 객체이다.
POSIX에서 파일 서술자는 정수, 곧 C형 int를 말한다. 모든 프로세스가 갖추어야 하는 표준 POSIX 파일 서술자는 다음과 같이 세 개가 있다.
정수값 | 이름 |
---|---|
0 | 표준 입력 (stdin) |
1 | 표준 출력 (stdout) |
2 | 표준 오류 (stderr) |
파일 서술자의 연산자
편집현대의 유닉스는 일반적으로 파일 서술자에 다음과 같은 연산자를 제공한다.
파일 서술자 만들기
편집- open(), open64(), creat(), creat64()
- socket()
- socketpair()
- pipe()
파일 서술자 가져오기
편집- dirfd()
- fileno()
한 개의 파일 서술자를 위한 연산자
편집- read(), write()
- readv(), writev()
- pread(), pwrite()
- recv(), send()
- recvmsg(), sendmsg()
- sendfile()
- lseek(), lseek64()
- fstat(), fstat64()
- fchmod()
- fchown()
- fdopen()
- gzdopen()
- ftruncate()
- fsync()
- fdatasync()
- fstatvfs()
여러 개의 파일 서술자를 위한 연산자
편집- select(), pselect()
- poll(), epoll()
- kqueue(), kevent()
파일 서술자 테이블을 위한 연산자
편집- close()
- dup()
- dup2()
- fcntl (F_DUPFD)
- fcntl (F_GETFD 및 F_SETFD)
프로세스 상태를 수정하는 연산자
편집- fchdir()
- mmap()
파일 잠금
편집- flock()
- fcntl (F_GETLK, F_SETLK 및 F_SETLKW)
- lockf()
소켓
편집- connect()
- bind()
- listen()
- accept()
- getsockname()
- getpeername()
- getsockopt(), setsockopt()
- shutdown()
기타
편집새로 출시되는 연산자
편집새로운 일련의 파일 서술자의 연산자들이 수많은 C 라이브러리와 더불어 솔라리스와 리눅스에 추가되고 있다. 이로써 앞으로 출시될 POSIX 버전에 표준으로 자리잡게 된다.[1]
- openat()
- faccessat()
- fchmodat()
- fchownat()
- fstatat()
- futimesat()
- linkat()
- mkdirat()
- mknodat()
- readlinkat()
- renameat()
- symlinkat()
- unlinkat()
- mkfifoat()
- fdopendir()
같이 보기
편집- lsof - 공개 파일 연산자에 대한 정보를 보여 주는 유틸리티
각주
편집- ↑ 《Extended API Set, Part 2》. The Open Group. 2006년 10월. ISBN 1931624674.