본문 바로가기
programming/Unix

[Unix Programming] 12. Locking

by je0nsye0n 2025. 1. 16.

record locking

  • locking : 특정 record에 대한 다른 프로세스의 읽기/쓰기 제한
    • read lock : 읽기는 허용, 쓰기는 제한
    • write lock : 읽기와 쓰기 모두 제한
  • unlocking : 제한 해제
int fcntl(int fildes, int cmd, struct lock *ldata);
  • fildes :
    • read-lock : O_RDONLY/O_RDWR로 open된 파일에 한해서 적용 가능
    • write-lock : O_WRONLY/O_RDWR로 open된 파일에 한해서 적용 가능
  • cmd :
    • F_GETLK : lock 정보 얻기
    • F_SETLK : non-blocking locking or unlocking
    • F_SETLKW : blocking locking
  • struct flock *ldata
    • short l_type : lock의 타입
    • → F_RDLCK, F_WRLCK, F_UNLCK
    • short l_whence :
    • → SEEK_SET, SEEK_CUR, SEEK_END
    • off_t l_start
    • off_t l_len
    • pid_t l_pid