Ciao ragazzi, apro questo post, anche se è lo stesso programma descritto in quest'altro topic, perchè ho un problema che non riesco a risolvere!!!

All'interno di un thread richiamo la funzione ricerca3 che cerca all'interno di un file userass! La funzione stestata a parte funziona tranquillamente mentre nel programma in cui è inserita no. O meglio, ritorna sempre 0!!

spero sappiate aiutarmi


codice:
void* my_thread_listen(int DescrittoreSocketrecv)
{   
  
    
char buffer[512];
int NuovoSocket;
int exitCond=0;
int Quanti;    
int n=0;
    
//struct timeval tv;
    
    fd_set readfds;
    FD_ZERO(&readfds);
    

printf("Server: Attendo connessioni...\n");
    
while (!exitCond)
{
FD_SET(DescrittoreSocketrecv,&readfds);
//Test sul socket: accept non blocca, ma il ciclo while continua
//l'esecuzione fino all'arrivo di una connessione.
n=select(99999,&readfds,NULL,NULL,NULL);
if(n>0)
{  
if ((NuovoSocket=accept(DescrittoreSocketrecv,0,0))!=-1)
{
//Lettura dei dati dal socket (messaggio ricevuto)
if ((Quanti=read(NuovoSocket,buffer,sizeof(buffer)))<0)
{
printf("Impossibile leggere il messaggio.\n");
ChiudiSocket(NuovoSocket);
}
else
{
//Aggiusto la lunghezza...
buffer[Quanti]=0;
//Elaborazione dati ricevuti
if (strcmp(buffer,"exit")==0)
exitCond=1;
else printf("Client: %s \n",buffer);

//traduci stringa del client per capire la direttiva
char* cmd=stringcmd(buffer);

if(strcmp(cmd,"1:")==0)
{
    int flag;
    pthread_t thlogin;
    pthread_create(&thlogin,NULL,login,buffer);
    pthread_join(thlogin,flag);
    //Tentativo di login
    printf("Tentativo di login\n");
       
        
}




}
//Chiusura del socket temporaneo
ChiudiSocket(NuovoSocket);
}

}
}
    
    

}