我无法在c中执行pthreads程序。请告诉我以下程序有什么问题。我既没有收到任何错误,也没有预期输出。以下pthread程序有什么问题?
void *worker(void * arg)
{
int i;
int *id=(int *)arg;
printf("Thread %d starts\n", *id);
}
void main(int argc, char **argv)
{
int thrd_no,i,*thrd_id,rank=0;
void *exit_status;
pthread_t *threads;
thrd_no=atoi(argv[1]-1);
thrd_id= malloc(sizeof(int)*(thrd_no));
threads=malloc(sizeof(pthread_t)*(thrd_no));
for(i=0;i<thrd_no;i++)
{
rank=i+1;
thrd_id[i]=pthread_create(&threads[i], NULL, worker, &rank);
}
for(i=0;i<thrd_no;i++)
{
pthread_join(threads[i], &exit_status);
}
}
呃,其中一个,你的程序会建立尽可能多的警告,因为它有行。考虑添加一些包含并整理警告;编译器很擅长告诉你有关令人讨厌的惊喜,你应该注意它的警告。 – zmccord 2012-04-22 07:15:02