当前位置: 技术问答>linux和unix
多线程的一个问题?
来源: 互联网 发布时间:2017-04-11
本文导语: #include #include #include #include typedef struct arg_struct ARG; struct arg_struct{ char arg1[10]; int arg2; float arg3; }; void *thfn(void *arg) { ARG *p = (ARG *)arg; printf("arg1 is: %s, arg2 is: %d, arg3 is: %fn", p->arg1, p->arg2, p->arg3); return NULL; } ...
#include
#include
#include
#include
typedef struct arg_struct ARG;
struct arg_struct{
char arg1[10];
int arg2;
float arg3;
};
void *thfn(void *arg)
{
ARG *p = (ARG *)arg;
printf("arg1 is: %s, arg2 is: %d, arg3 is: %fn", p->arg1, p->arg2, p->arg3);
return NULL;
}
int main(int argc, char *argv[])
{
pthread_t tid;
ARG arg;
int err;
strcpy(arg.arg1, argv[1]);
arg.arg2 = atoi(argv[2]);
arg.arg3 = atof(argv[3]);
err = pthread_create(&tid, NULL, thfn, (void *)&arg);
if (err != 0)
{
printf("can't create thread %sn", strerror(err));
exit(1);
}
return 0;
}
这是一本书中的一个例子,编译gcc -o mularg mularg.c -lpthread没错,但执行./mularg hello 21 11.2没结果?
还有就是用gcc -lpthread -o mularg mularg.c编译时会报错,网上说gcc在链接时,对参数中的库的顺序有要求,参数右侧的库会先于左侧的库加载,是吗?先谢谢了!
|
没有pthread_join吧, 主线程退出进程则退出了, 线程还没来得及跑.
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。