pthread_create和timeval不能同时使用
环境:ubuntu 13.04
最近写程序,创建线程时,发现pthread_create()和结构体timeval不能同时使用,同时使用,运行时报错。
代码示例:
#include <stdio.h>
#include <pthread.h>
#include <sys/time.h>
#include <unistd.h>
void *function(void *arg);
int main()
{
pthread_t *thread;
//struct timeval tv = {0, 100};
printf("Time: 20140417\n");
if(pthread_create(thread, NULL, function, NULL) != 0)
{
perror("pthread_create error");
return -1;
}
printf("============\n");
sleep(1);
printf("============\n");
sleep(1);
printf("============\n");
return 0;
}
void *function(void *arg)
{
sleep(1);
printf("In function\n");
sleep(1);
}
运行结果:
linux@linux-vm:~/work$ ./a.out
Time: 20140417
============
============
In function
============
linux@linux-vm:~/work$
添加struct timeval后代码:
#include <stdio.h>
#include <pthread.h>
#include <sys/time.h>
#include <unistd.h>
void *function(void *arg);
int main()
{
pthread_t *thread;
struct timeval tv = {0, 100};
printf("Time: 20140417\n");
if(pthread_create(thread, NULL, function, NULL) != 0)
{
perror("pthread_create error");
return -1;
}
printf("============\n");
sleep(1);
printf("============\n");
sleep(1);
printf("============\n");
return 0;
}
void *function(void *arg)
{
sleep(1);
printf("In function\n");
sleep(1);
}
运行结果:
linux@linux-vm:~/work$ ./a.out
Time: 20140417
Segmentation fault (core dumped)
linux@linux-vm:~/work$
是什么原因还不清楚,希望大牛解惑,非常感谢!