728x90
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 등의 함수도 소개하면 좋겠지만 정리의 목적이 세부적인 함수들까지 소개하는 것이 아니므로 이 정도 선에서 마무리하겠다.
'컴퓨터 공학 전공 > 시스템 프로그래밍' 카테고리의 다른 글
Memory Mapped File (0) | 2020.04.01 |
---|---|
IPC (0) | 2020.04.01 |
signal (0) | 2020.04.01 |
Pipe (0) | 2020.04.01 |
fork, wait, exit, exec (0) | 2020.03.31 |