티스토리 뷰
pthread_create는 다음과 같이 이루어져 있습니다.
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
여기서 void *arg 인자로 pthread에 인자를 넘겨주게 됩니다.
이 인자를 사용하여 여러 인자를 넘겨줄 수 있는데 그 방법은 바로 struct를 이용하는 것 입니다.
a, b 두 값을 넘기고 싶다고 하면,
struct MultipleArg
{
int a;
int b;
};
위와같이 구조체를 만들어 줍니다.
MultipleArg *multiple_arg;
multiple_arg = (MultipleArg *)malloc(sizeof(MultipleArg));
multiple_arg->a = 1;
multiple_arg->b = 2;
pthread_create(&mthread, NULL, mfunc, (void *) multiple_arg);
이런 형식으로 구조체를 (void *) 로 캐스팅 해서 넘겨주면 됩니다.
그 후 mfunc에서는
void *mfunc(void *multiple_arg) {
MultipleArg *my_multiple_arg = (MultipleArg *)multiple_arg;
printf("a: %d b: %d\n", my_multiple_arg->a, my_multiple_arg->b);
}
와 같이 void * 로 넘어온 인자를 MultipleArg * 로 캐스팅 시켜서 사용하면 됩니다.
'Linux' 카테고리의 다른 글
Bracket 설치 libgcrypt11 에러 (0) | 2017.01.01 |
---|---|
[Docker] Can't connect to docker daemon 에러 (0) | 2016.12.30 |
[ubuntu] wine 1.8 stable 버전 설치하기 (0) | 2016.11.13 |
Ubuntu CapsLock키 Ctrl로 설정하기 (0) | 2014.08.26 |
Linux(리눅스) fg, bg, kill, Ctrl+Z (5) | 2014.08.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- ubuntu
- 여러 인자
- MySQL
- Uniity5
- winetricks
- install
- 한글
- utf-32
- 왜 0부터
- docker
- libgcrypt
- locales
- 객체란
- 우분투
- 언리얼 엔진4
- Android
- download
- libgcrypt11
- void* arg
- mariasql
- 인코딩
- 다운로드
- unreal4
- 컴퓨터 숫자
- 설치
- 안드로이드
- 2의 보수
- object orient
- wine1.8
- UTF8
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함