Fcntl 모듈

Fcntl 모듈 (Fcntl)

파일 설명자 제어에 쓰이는 fcntl(2) 상수들과 파일 열기 모드 상수들을 제공하는 모듈이에요. 저수준 파일 I/O(IO, File)를 다룰 때 플래그 값을 지정하는 데 사용돼요.

출처: Ruby 3.3 API

본문

F_* 상수 (파일 설명자 명령)

상수 설명
F_DUPFD 인자 이상의 최소 미사용 파일 설명자로 복제해요. 복제된 설명자의 close-on-exec 플래그가 설정돼요. (Ruby는 경합을 피하려고 내부적으로 F_DUPFD_CLOEXEC를 사용하고, 없으면 F_SETFD를 사용해요.)
F_DUP2FD FreeBSD 전용 상수예요. dup2 호출과 동등해요.
F_DUP2FD_CLOEXEC FreeBSD 전용 상수예요. F_DUP2FD와 비슷하되 추가로 FD_CLOEXEC 플래그를 설정해요.
F_GETFD 파일 설명자의 close-on-exec 플래그를 읽어요.
F_GETFL 파일 설명자 플래그를 가져와요. O_* 플래그 하나 이상이 돼요.
F_SETFD 파일 설명자의 close-on-exec 플래그를 설정해요.
F_SETFL 파일 설명자 플래그를 설정해요. O_* 플래그 하나 이상이 돼요.
F_GETLK 파일의 특정 영역이 잠겨 있는지 확인해요. F_*LK 플래그 중 하나를 사용해요.
F_SETLK 파일의 특정 영역에 잠금을 획득해요. F_*LCK 플래그 중 하나를 사용해요.
F_SETLKW 필요하면 기다려가며 파일 특정 영역에 잠금을 획득해요. F_*LCK 플래그 중 하나를 사용해요.
F_RDLCK 파일 영역의 읽기 잠금
F_WRLCK 파일 영역의 쓰기 잠금
F_UNLCK 파일 영역의 잠금 제거
F_GETPIPE_SZ fd가 가리키는 파이프의 용량을 함수 결과로 돌려줘요.
F_SETPIPE_SZ fd가 가리키는 파이프의 용량을 최소 arg 바이트로 바꿔요.

O_* 상수 (파일 열기 플래그)

상수 설명
O_ACCMODE 읽기/쓰기 플래그를 추출하기 위한 마스크
O_APPEND 파일을 append 모드로 열어요.
O_CREAT 파일이 없으면 생성해요.
O_EXCL O_CREAT와 함께 사용되며, 파일이 있으면 실패해요.
O_NDELAY 파일을 non-blocking 모드로 열어요.
O_NOCTTY TTY가 제어 TTY가 되지 않게 열어요.
O_NONBLOCK 파일을 non-blocking 모드로 열어요.
O_RDONLY 파일을 읽기 전용 모드로 열어요.
O_RDWR 파일을 읽기/쓰기 모드로 열어요.
O_TRUNC 열 때 파일을 잘라내요(truncate).
O_WRONLY 파일을 쓰기 전용 모드로 열어요.

기타

  • FD_CLOEXEC — close-on-exec 플래그의 값
  • VERSION — 모듈 버전

이 상수들은 보통 IO.sysopen이나 fcntl(2)를 직접 호출하는 저수준 코드에서 쓰여요. 플랫폼마다 지원하는 상수가 조금씩 다를 수 있으니 주의해야 해요.