Ciao ragazzi,
volevo chiedervi un aiuto con C...premetto che sto iniziando adesso a studiare il linguaggio C e, dato che ho Windows XP, ho installato Dev C++.
Quando però compilo un file mi dà tanti errori e non posso mandarlo in esecuzione.
Vi spiego passo passo cosa faccio io, così vedo dove sbaglio.
Allora innanzittuto eseguo questi passi:
FILE-NUOVO-FILE SORGENTE e scrivo il mio bel programmino, che posto qui di seguito:
codice:
#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#include<unistd.h>
#include<errno.h>

#define MAX_TURISTI 5


typedef struct 
{
	pthread_mutex_t gioconda;
	pthread_cond_t turno;
	int numturisti,turistiSosp;
}louvre;


louvre v;

void init(louvre * L)
{
	
	pthread_mutex_init(&L->gioconda,NULL);
	pthread_cond_init(&L->turno,NULL);
	L->numturisti=0;
	L->turistiSosp=0;
}

void EntraTurista(void * a)
{
	struct timeval now;
	struct timespec timeout;
	
	gettimeofday(&now,NULL);
	timeout.tv_sec=now.tv_sec+rand()%6;
	timeout.tv_nsec=now.tv_usec*1000;
	int retcode;

	
	pthread_cond_timedwait(&(v.turno),&(v.gioconda),&timeout);
	
	  pthread_mutex_lock(&(v.gioconda));
	if (v.numturisti<=5)
	{   
		++v.numturisti;
		printf("Un turista entra\n  In totale ci sono %d turisti \n",v.numturisti);
		guarda(&v);
	}
	
	else  if(v.numturisti>5)
	{
		v.turistiSosp++;
		printf("Un turista aspetta fuori\n In totale ci sono %d turisti che aspettano \n\n",v.turistiSosp);
		retcode=pthread_cond_wait(&(v.turno),&(v.gioconda));
		
		v.turistiSosp--;
	}
	
	

	printf("Un turista esce \n");
	pthread_mutex_unlock(&(v.gioconda));
	
	
}


void guarda(louvre * _v)
{
	if(_v->numturisti<=5)
	{
		pthread_mutex_lock(&(_v->gioconda));
		printf("Ci sono %d turisti che guardano la gioconda \n",_v->numturisti);
	
	
		_v->numturisti--;  
		pthread_cond_signal(&(_v->turno));
	}
	
}





int main()
{
	pthread_t visitor[50];
	
	init(&v);
	
	int i;
	
	for(i=0;i<50;i++)
	{
		pthread_create(&visitor[i],NULL,EntraTurista,NULL);
		sleep(3);
	}
	
	for(i=0;i<50;i++)
	{
		pthread_join(visitor[i],NULL);
	}
	
	exit( 0);
}
poi lo salvo:museo.c e clicco su:ESEGUI-COMPILA:
Appena compilo mi escono tutti una serie di errori:
No such file or directory.
14 museo.c syntax error before "pthread_mutex_t"
14 C:\Documents and Settings\user\Documenti\museo.c [Warning] no semicolon at end of struct or union
15 C:\Documents and Settings\user\Documenti\museo.c [Warning] data definition has no type or storage class
17 C:\Documents and Settings\user\Documenti\museo.c syntax error before '}' token
20 C:\Documents and Settings\user\Documenti\museo.c syntax error before "v"

ed altri errori.

Coma mai?dove sbaglio?
Grazie mille a tutti in anticipo