私のプログラムはいくつかのスレッドを作成する必要がありますが、リターン ( safe ) が 0 ではなく 3 であるため、常にエラーのケースになるため、pthread_join で立ち往生しています。 .
編集:自分自身をよりよく説明するために、エラーは、コードが想定されていないときにエラー処理領域に入っていることです。これは、「エラー待機中:成功」メッセージが表示されることを意味します。
int main() {
pthread_t tids[NUM_THREADS];
int a, i, resultado, safe ;
char *f ;
f = (char *)malloc(sizeof(SIZEFICHEIRO));
a = randomnum(4);
f = pickfile(a, f);
for ( i=0; i<NUM_THREADS ; i++ )
{
safe = pthread_create( &tids[i] , NULL , (void *)verificador , (void *) f) ;
if ( safe != 0 )
perror ("Error creating threads");
}
for ( i=0; i<NUM_THREADS ; i++ )
{
safe = pthread_join( tids[i], (void **)&resultado ) ;
if ( safe != 0 ) // Error here
perror ("Error waiting");
printf("Result(0:Works ; -1:error) = %d\n", resultado);
}
}