我正在尝试从pthread_join打印返回值。我有以下代码:
for(j = 0 ; j < i ; ++j){
pthread_join( tid[j], returnValue); /* BLOCK */
printf("%d\n", (int)&&returnValue);
}
所有线程都存储在tid数组中,并正确创建和返回。在每个线程函数的末尾,我有以下行:
pthread_exit((void *)buf.st_size);
我试图返回正在读取的某些文件的大小。由于某种原因,我无法获取它来打印正确的值。我尝试从pthread_join函数调用中取消引用void **的方式很有可能,但是我不太确定该怎么做。在此先感谢您的帮助。
最佳答案
您需要将void *
变量的地址传递给pthread_join
-它会用退出值填充:
for(j = 0 ; j < i ; ++j) {
void *returnValue;
pthread_join( tid[j], &returnValue); /* BLOCK */
printf("%d\n", (int)returnValue);
}
关于C pthread_join返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13315575/