열렬히.뛰기

사전준비 & 파싱

école 42 > philosopher > philosopher : 보너스 > 사전준비 & 파싱

함수 공부

보너스에서는 세마포어를 이용해서 데이터 레이스를 방지한다.

c
sem_t *sem_open(const char *name, int oflag, ...);
int sem_close(sem_t *sem);
int sem_post(sem_t *sem);
int sem_wait(sem_t *sem);
int sem_unlink(const char *name);
c
sem_open()
// 1st param => 세마포어의 이름
// 2nd param => 세마포어의 특성 : 생성만
// 

sem_close()
// 세마포어의 이름

sem_unlink()
// 세마포어의 이름

세마포어를 사용해 프로세스 간 공유 데이터를 차단하기

c
sem_wait(); // 세마포어의 숫자가 늘어난다.

...

sem_post(); // 세마포어의 숫자가 줄어든다.

파싱

기존 philosopher과 비슷하게 짜면 된다.