/*thread_struct.c编写应用程序,创建一线程,并向该线程处理函数传递以结构体*/
#include<stdio.h>
#include<pthread.h>
#include<unistd.h>
#include<stdlib.h>
struct member
{
int a;
char *s;
};
/*线程执行函数*/
void *create(void *arg)
{
struct member *temp;
temp=(struct member *)arg;
printf("member->a=%d\n",temp->a);
printf("member->s=%s\n",temp->s);
return (void*)0;
}
int main(int argc,char *argv[])
{
pthread_t tidp;
int error;
struct member *b;
/*为结构体指针b分配内存并赋值*/
b=(struct member *)malloc(sizeof(struct member));
b->a=4;
b->s="zieckey";
/*创建线程并运行线程执行函数*/
error=pthread_create(&tidp,NULL,create,(void *)b);
if(error)
{
printf("pthread is not created...\n");
return -1;
}
sleep(1);//进程睡眠一秒使线程执行完后进程才会结束
printf("pthread is create...\n");
return 0;
}