io sto sotto unix

e quando parte il tread non funziona

devo fare la open anche dentro il tread creato

invece dovrei fare la open di due file nel master e la read nel tread creato

io faccio così

codice:
void *fun(struct dati *dat)
{
 int j;
 char cbyte[20];
 

   read(fd,&cbyte,20);

}
int main(int argc,char **argv)
{
 fd=open(argv[1],O_RDONLY,0777);
 fd1=open(argv[2],O_WRONLY ,0777);
  dat.fil1=fd;
  printf("FILE DESC vale:%d\n",dat.fil1);
  dat.fil2=fd1;
  pthread_create(&tid,NULL,(void *)fun,&dat);
 }
return;
}
così non va devo mettere le open pure nella funzione