Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5 introduce Dynamic Multi Frame Generation e MFG 6X, permettendo fino a cinque frame generati per ogni frame renderizzato. I test su Cyberpunk 2077 e 007 First Light mostrano forti incrementi di FPS e riduzione della latenza su RTX 5090 Laptop. Migliorano fluidità, stabilità e qualità visiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-02-2008, 13:02   #1
19spike83
Senior Member
 
Iscritto dal: Apr 2006
Messaggi: 384
[c] problema compèilazione con pthread

Salve ragazzi , ho un problema a compilare un esercizio in c , sono neofita in linux , ho guardato in giro i commenti per gli errori ma non riesco a scapparci fuori , forse mancano le librerie ??
quali librerie mancano ?? posix ?? come faccio a installarle ??

ci sarebbe un modo di compilare tutto sotto windows con microsof visual strudio ??
con visual studio mi dice quando compilo : Cannot open include file: 'semaphore.h': No such file or directory

compilando con gcc sotto ubuntu , faccio
gcc file.c

warning: no newline at end of file
/tmp/ccKWOzjo.o: In function `coordinatore':
monitor.c.text+0x2c4): undefined reference to `pthread_create'
monitor.c.text+0x31a): undefined reference to `pthread_join'
monitor.c.text+0x347): undefined reference to `pthread_create'
monitor.c.text+0x39f): undefined reference to `pthread_create'
monitor.c.text+0x3e6): undefined reference to `pthread_join'
monitor.c.text+0x3f8): undefined reference to `pthread_join'
collect2: ld returned 1 exit status


altrimenti ho provato

gcc file.c -o file -lpthread

warning : no newline at end of file


questo è il file che devo compilare :
Come mi devo comportare ??

Mi basterebbe riuscire a compilarlo e dopo lo adatterei alle mie esigenze ............
Grazie per qualsiasi aiuto.

#include <stdio>
#include <stdlib>
#include <windows>
#include <pthread>
#include <semaphore>

#define MAX_SPALATORI 5 //SPALATORI
#define MAX_PALE 2 //PALE
#define MAX_GUANTI 5 //GUANTI sempre in numero pari

#define RALLENTA 40000000 //variabile per rallentare
#define SPALATE 3

pthread_mutex_t prendi,rilascia; //mutex per acquisire o rilasciare i 2 tipi di risorse in mutua esclusione
pthread_mutex_t mutex; //mutex utilizzato UNICAMENTE per l'accesso in mutua esclusione al buffer di output (per mantenere formattato l'output)
sem_t guanti; //semafori inizializzati a G
sem_t pale; //semafori inizializzati a P

void attesa();


void *spalatore(void *arg)
{
int i;
//while(1)
for(i=0; i<SPALATE; i++)
{

pthread_mutex_lock(&mutex);

printf("\nSpalatore n. %d :bevo il caffe\'\n.",arg); //BEVE IL CAFFE
attesa();

pthread_mutex_unlock(&mutex);

pthread_mutex_lock(&prendi);
sem_wait(&guanti); //afferra il guanto destro
sem_wait(&guanti); //afferra il guanto sinistro
sem_wait(&pale); //afferra la pala
pthread_mutex_unlock(&prendi);

pthread_mutex_lock(&mutex);

printf("\nSpalatore n. %d : Ho preso guanti e pala!! vado a spalare la neve\n",arg); //FA QUALCOSA (spala la neve)
attesa();

pthread_mutex_unlock(&mutex);


pthread_mutex_lock(&rilascia);
sem_post(&guanti); //rilascia il guanto destro
sem_post(&guanti); //rilascia il guanto sinistro
sem_post(&pale); //rilascia la pala
pthread_mutex_unlock(&rilascia);
}
return NULL;
}




void main()
{
char i;
void* ret;
pthread_t spalatori[MAX_SPALATORI];
pthread_mutex_init(&mutex,NULL); //INIZIALIZZO I SEMAFORI
pthread_mutex_init(&prendi,NULL);
pthread_mutex_init(&rilascia,NULL);
sem_init(&guanti,0,MAX_GUANTI);
sem_init(&pale,0,MAX_PALE);

attesa();
printf(" ORE 7:30\n\nGli spalatori sono arrivati nel cortile e vanno tutti a prendersi un caffe\'\n\n");
attesa();
printf("Ci sono %d spalatori, %d pale e %d paia di guanti\n\n", MAX_SPALATORI, MAX_PALE+1, MAX_GUANTI+1);
attesa();

for (i=0;i<MAX_SPALATORI;i++) //CREO I THREAD
{
if (pthread_create(&spalatori[i], NULL, spalatore, (void*)i)<0)
{
fprintf(stderr,"ERRORE!!");
exit(1);
}
}

for (i=0;i<MAX_SPALATORI;i++)
{
pthread_join(spalatori[i],&ret);
}

/*
pthread_mutex_destroy(&mutex); // DISTRUGGO TUTTI I SEMAFORI
pthread_mutex_destroy(&prendi);
pthread_mutex_destroy(&rilascia);
sem_destroy(&guanti);
sem_destroy(&pale);

////////////////////inizia il pomeriggio//////////////////////////////////

pthread_mutex_init(&mutex,NULL); //INIZIALIZZO I SEMAFORI
pthread_mutex_init(&prendi,NULL);
pthread_mutex_init(&rilascia,NULL);
sem_init(&guanti,0,MAX_GUANTI-1);
sem_init(&pale,0,MAX_PALE-1);
*/


for (i=0; i<MAX_SPALATORI; i++)
{
attesa();
printf("\nSpalatore n. %d :bevo il caffe\'\n.",i);
}
attesa();
printf("\n ORE 12.00\n\nPausa Pranzo, gli spalatori se ne vanno in mensa\n");
attesa();
printf("\n ORE 14.00\n\nEcco gli spalatori di ritorno, ora un caffe\' e poi al lavoro!!\n");
attesa();

for (i=0;i<MAX_SPALATORI;i++) //CREO I THREAD
{
if (pthread_create(&spalatori[i], NULL, spalatore, (void*)i)<0)
{
fprintf(stderr,"ERRORE!!");
exit(1);
}
}
for (i=0;i<=MAX_SPALATORI;i++)
{
pthread_join(spalatori[i],&ret);
}



for (i=0; i<MAX_SPALATORI; i++)
{
attesa();
printf("\nSpalatore n. %d :bevo il caffe\'\n.",i);
}

printf("\n ORE 17.00\n\nOTTIMO LAVORO!!\n\n La giornata e\' finita... gli spalatori se ne tornano a casa!!\n\n");
system("pause");

pthread_mutex_destroy(&mutex); // DISTRUGGO TUTTI I SEMAFORI
pthread_mutex_destroy(&prendi);
pthread_mutex_destroy(&rilascia);
sem_destroy(&guanti);
sem_destroy(&pale);

}


void attesa()
{
int j;
for(j=0; j<RALLENTA; j++) // ciclo per rallentare la visione in output
{
}
}
__________________
ho concuso felicemente con fabbri00 , flueretty, bidduzzo,WildCat Hendrix, chapi,iasudoru, 791ChessMateK ,agma , farina1 .
UNICA esperienza negativa utente da evitare sochmell QUI

Ultima modifica di 19spike83 : 05-02-2008 alle 13:34.
19spike83 è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 13:42   #2
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
gcc file.c -o file -lpthread

warning : no newline at end of file

A me sembra che qua ha funzionato

Manca solo il newline alla fine del file , ma è ignorabilissimo...
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 17:47   #3
19spike83
Senior Member
 
Iscritto dal: Apr 2006
Messaggi: 384
scusate infatti ora mi funziona .... chissa cosa sbagliavo.... bho...

Adesso vedo di modificarlo come mi serve , se ho qualche problema magari scrivo qui.

Grazie
__________________
ho concuso felicemente con fabbri00 , flueretty, bidduzzo,WildCat Hendrix, chapi,iasudoru, 791ChessMateK ,agma , farina1 .
UNICA esperienza negativa utente da evitare sochmell QUI
19spike83 è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2008, 08:09   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
[OT]
E' già il secondo esercizio in C sui thread che vedo con 'sti benedetti "Spalatori", ma che è, un classico della materia?
Questi vanno pure a bersi il caffè
[/OT]
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2008, 12:01   #5
19spike83
Senior Member
 
Iscritto dal: Apr 2006
Messaggi: 384
in effetti è vero ci guardavo pure io ....
Si bevono un caffè e spalano ahahhha.

Son i soliti esercizi che si danno....spalatori , ippodromo , ecc ecc

Ho dei problemini con la coda circolare ... mi vca fuori dalla coda se faccio ripetere continuamente il ciclo.....spero di risolvere sta roba mi fà perdere la testa...
__________________
ho concuso felicemente con fabbri00 , flueretty, bidduzzo,WildCat Hendrix, chapi,iasudoru, 791ChessMateK ,agma , farina1 .
UNICA esperienza negativa utente da evitare sochmell QUI
19spike83 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
I guardrails di Claude Fable 5 fanno sca...
Phanteks Evolv Series S2 a 99€: il case ...
Quasi un milione di passaporti esposti: ...
L'Unione Europea pubblica il nuovo codic...
The Elder Scrolls 6: lo sviluppo continu...
motorola razr 70: pochi cambiamenti ma b...
Logitech G PRO X2 Superstrike: i giocato...
DiffusionGemma sfida gli LLM tradizional...
È ancora guerra fra Google e uBlock Orig...
Agente IA fa quello che vuole su Fedora:...
Ubisoft chiude gli studi di Winnipeg e B...
Fractal è un kernel che spia cosa...
Acqui Terme 'elegge' Eva Statiella, la p...
ECOFLOW DELTA 3 Max Plus con coupon da 3...
F1: la FIA cambia le regole sui motori p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:08.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v