record lock

Jin·2022년 2월 27일
0

lock에는 대표적으로 두 가지가 존재합니다.

  • Writers’s lock: Exclusive lock으로 writing 하는 process 혹은 thread가 lock을 소유하면 다른 writer나 reader는 모두 writer lock을 반환할 때까지 기다려야 합니다.
  • Reader’s lock: Shared lock으로 다른 reader는 바로 진입이 가능합니다. (writer는 기다려야 함)

File lock을 하는 대표적인 함수는 fcntl입니다.

int fcntl (int fildes, int cmd, struct flock *lock)

  • fildes: file descriptor
  • cmd: command to do

cmd:

  • F_GETLK: 현재 LOCK을 반환합니다
  • F_SETLK: LOCK을 바로 얻으려고 시도하는데 만약 사용중이라면 바로 error를 반환합니다 (non-blocking)
  • F_SETLKW: LOCK을 바로 얻으려고 시도하는데 만약 사용중이라면 LOCK이 반환될 때까지 기다립니다 (blocking)

fseek, fread, fwrite 등의 함수도 소개하면 좋겠지만 정리의 목적이 세부적인 함수들까지 소개하는 것이 아니므로 이 정도 선에서 마무리하겠습니다.

profile
배워서 공유하기

0개의 댓글