뮤텍스 예제에서 질문이여
글쓴이: qoqkwl6593 / 작성시간: 화, 2015/08/25 - 4:05오후
#include <pthread.h> #include <stdio.h> #include <stdlib.h> struct account{ int balance; pthread_mutex_t mutex; }; void *disburse_money(int amout) { } int withdraw(struct account *account, int amount) { pthread_mutex_lock(&(account->mutex)); const int balance = account->balance; if(balance < amount){ pthread_mutex_unlock(&account->mutex); return -1; } account->balance = balance - amount; pthread_mutex_unlock(&(account->mutex)); printf("%d\n", account->balance); disburse_money(amount); return 0; } int main() { struct account abcd; abcd.balance = 10000; abcd.mutex = PTHREAD_MUTEX_INITIALIZER; withdraw(&abcd, 5000); return 0; }
현재 코드에서 보면은 구조체 abcd를 만들어서 구조체안에 mutex를 만들었습니다.
그런데 그부분에서 abcd구조체에서 집적
abcd.mutex를 초기화 시키려고 했는데 그부분을 초기화시키려고 하면 에러 현상이나서....
그냥 mutex를 초기화 시킬때는 전혀나지 않는 현상인데...
왜그런가여???
그리고 실제로도 구조체안에서 mutex를 써야할필요가 있는 소스라...
그게 구현이 안되는 건가여?
ERROR
mutex.c: In function ‘main’:
mutex.c:44: error: expected expression before ‘{’ token
Forums:
PTHREAD_MUTEX_INITIALIZER는
PTHREAD_MUTEX_INITIALIZER는 선언하면서 초기화할 때 사용합니다.
#define PTHREAD_MUTEX_INITIALIZER {0, 0, -1, -1, -1}
이런식으로 선언되어 있습니다.
아래 두 개의 방법 중 한가지를 선택하시면 됩니다.
Signature :) - "여유를 갖고 행동하되 게을러지지 말자"
답변 감사합니다.
답변 감사합니다ㅎㅎ..
생각의 범위를 넓혀야겠다고 또한번 생각하게되는군여..
댓글 달기