[ CnUnix ] in KIDS 글 쓴 이(By): hsyoon (놀레기) 날 짜 (Date): 2005년 3월 21일 월요일 오후 11시 23분 38초 제 목(Title): 간단한 pthread 프로그램을 실행하는데 pthread 를 사용하는 아주 간단한 예제 프로그램 - 책에도 소개된 C 프로그램을 실행해보면 pthread_create 함수의리턴 값이 -1이 나옵니다. 쓰레드 생성이 안되는 이유가 무엇이 알수가 없네요. 코드는 이렇습니다. #include <pthread.h> #include <stdio.h> int sum; void *runner(void *param); main(int argc, char *argv[]) { pthread_t tid; pthread_attr_t attr; int rc; if(argc != 2) { fprintf(stderr, "usage: a.out <integer value>\n"); exit(); } if (atoi(argv[1]) < 0) { fprintf(stderr, "%d must be >= 0\n", atoi(argv[1])); exit(); } printf("argv[1] = %s\n", argv[1]); pthread_attr_init(&attr); rc = pthread_create(&tid, &attr, runner, argv[1]); if(rc < 0) { fprintf(stderr, "pthread is not created \n"); exit(-1); } pthread_join(tid, NULL); printf("sum = %d\n", sum); } void *runner(void *param) { int upper = atoi(param); printf("upper = %d\n", upper); int i; sum = 0; if(upper > 0) { for(i=1; i <= upper; i++) sum+=i; } pthread_exit(0); } |