//这是一个通过独立线程来计算一个非负整数的累加和。。。
#include <stdio.h>
#include <pthread.h>
int sum;
void *runner(void *param);
int main(int argc, char* argv[]) {
pthread_t tid;
pthread_attr_t attr;
if(argc!=2) {
fprintf(stderr, "usage : a.out<integer value>\n");
return -1;
}
if(atoi(argv[1])<0) {
fprintf(stderr, "%d must be <=0", atoi(argv[1]));
return -1;
}
pthread_attr_init(&attr);
pthread_create(&tid, &attr, runner, argv[1]);
pthread_join(tid, NULL);
printf("sum = %d\n",sum);
}
void *runner(void *param) {
int i, upper = atoi(param);
sum = 0;
for(i=1; i<=upper; i++) {
sum += i;
}
pthread_exit(0);
}
在命令行下键入 gcc -o Demo Demo.c
当对Demo.c文件进行编译时的报错信息