열려진 파일에 대하여 권고잠금을 걸거나 해제한다.
#include <sys/file.h> int flock(int fd, int operation)
열려진 파일fd에 권고 잠금을 적용하거나 제거한다. operation은 잠금과 관련된 연산으로 다음과 같은 종류의 연산을 지원한다.
공유잠금. 한개 이상의 프로세스들이 주어진 시간에 파일에 대한 공유 잠금을 하도록 한다.
배타(exclusive)잠금. 주어진 시간에 단지 하나의 프로세스만 파일에 대하여 잠금을 얻을 수 있도록 한다.
잠금 해제
잠금일 때 블럭하지 않고 바로 리턴된다. 다른 연산과 or할 수 있다.
한 파일에 대해서 공유잠금과 배타잠금을 동시에 할 수는 없다. 잠금은 파일 기술자가 아닌 inode에 대해서 일어나게 된다. 그래서 dup와 fork는 중복된 잠금을 만들어 내지 않는다.
성공시 0이 리턴된다. 에러시 -1이 리턴된다.
파일이 잠겨 있고 LOCK_NB플래그가 선택되어 있을 경우
#include <unistd.h> #include <stdlib.h> #include <sys/file.h> #include <sys/types.h> #include <sys/stat.h> int main(int argc, char **argv) { int fd; int id; int i; char *file_name = "lock.file"; id = atoi(argv[1]); fd = open(file_name, O_RDONLY); sleep(1); if (flock(fd, LOCK_EX) != 0) { printf("flock error\n"); exit(0); } for (i =0; i < 5; i++) { printf("OK File FD %d : %d\n", id,i); sleep(1); } if (flock(fd, LOCK_UN) != 0) { printf("filue un lock error\n"); } close(fd); }
Copyrights © - Joinc, All Rights Reserved. Inherited From - Yundream Rebranded By - Joonphil
1장. flock(2)
열려진 파일에 대하여 권고잠금을 걸거나 해제한다.
1.1절. 사용법
1.2절. 설명
열려진 파일fd에 권고 잠금을 적용하거나 제거한다. operation은 잠금과 관련된 연산으로 다음과 같은 종류의 연산을 지원한다.
공유잠금. 한개 이상의 프로세스들이 주어진 시간에 파일에 대한 공유 잠금을 하도록 한다.
배타(exclusive)잠금. 주어진 시간에 단지 하나의 프로세스만 파일에 대하여 잠금을 얻을 수 있도록 한다.
잠금 해제
잠금일 때 블럭하지 않고 바로 리턴된다. 다른 연산과 or할 수 있다.
한 파일에 대해서 공유잠금과 배타잠금을 동시에 할 수는 없다. 잠금은 파일 기술자가 아닌 inode에 대해서 일어나게 된다. 그래서 dup와 fork는 중복된 잠금을 만들어 내지 않는다.
1.3절. 반환값
성공시 0이 리턴된다. 에러시 -1이 리턴된다.
1.4절. 에러
파일이 잠겨 있고 LOCK_NB플래그가 선택되어 있을 경우
1.5절. 예제
Recent Posts
Archive Posts
Tags