多线程的创建
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include <pthread.h>
struct number{
int a;
char *s;
};
//void *create((void*)arg){
void *create(void* arg){
struct number *temp;
temp=(struct number*)arg;
printf("%d\n",temp->a);
printf("%s\n",temp->s);
return (void*)0;
}
int main(int argc,char argv[]){
pthread_t pthid;
int errno;
struct number * num;
num=(struct number*)malloc(sizeof(struct number));
num->a=4;
num->s="Hello";
errno=pthread_create(&pthid,NULL,create,(void*)num);
if(errno){
perrno("create failure!\n");
exit(EXIT_FAILURE);
}
sleep(2);
return 0;
}
[root@localhost sourcetemp]# ./pthread
4
Hello
遇到的问题:
1.int main(int argc,char *argv[])写成int main(int argc,char argv[]);
2.void *create((void*)arg) 不能通过 改为void *create(void *arg)
3.连接时加上-lpthread