Torna indietro   Hardware Upgrade Forum > Software > Programmazione

MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-07-2008, 15:59   #1
stella_650
Member
 
Iscritto dal: Dec 2006
Messaggi: 104
[C unix] exec

Ciao a tutti,
potrei sapere come fare per implementare con una funzione della famiglia exec questo comando di shell?

sort -g > temp.txt

dal momento che
Codice:
execlp("sort","sort","-g",">","temp.txt",0);
mi da errore?
stella_650 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 16:31   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
> temp.txt ridirige stdout sul file e a questo ci pensa la shell non il comando sort. Per simulare questa cosa puoi prima aprire con fopen il file temp.txt e poi sostituirlo a stdout usando dup2, poi lanci la execlp.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 16:37   #3
stella_650
Member
 
Iscritto dal: Dec 2006
Messaggi: 104
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
> temp.txt ridirige stdout sul file e a questo ci pensa la shell non il comando sort. Per simulare questa cosa puoi prima aprire con fopen il file temp.txt e poi sostituirlo a stdout usando dup2, poi lanci la execlp.
dovrei quindi prima fare la open del file temp.txt
---sostituirlo a stdout usando dup2---nn ho capito come
eseguire la execlp("sort","sort","-g",0);
?
stella_650 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 16:43   #4
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Esatto.

Supponendo che temp_file sia il puntatore allo stream per temp.txt puoi usare dup2 in questo modo.
Codice:
dup2(fileno(temp_file), fileno(stdout));
In questo modo stdout viene chiuso e sostituito con temp_file.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 17:59   #5
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Ricorda che va fatto nel figlio che viene forkato e che andrà ad eseguire la exec*().
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:01   #6
stella_650
Member
 
Iscritto dal: Dec 2006
Messaggi: 104
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
Esatto.

Supponendo che temp_file sia il puntatore allo stream per temp.txt puoi usare dup2 in questo modo.
Codice:
dup2(fileno(temp_file), fileno(stdout));
In questo modo stdout viene chiuso e sostituito con temp_file.
Concettualmente ora è chiaro ma non capisco perchè la dup2 in quel modo mi restituisce questo warning che non mi consente di andare avanti...

In function ‘main’:
es1_1710.c:63: warning: passing argument 1 of ‘fileno’ makes pointer from integer without a cast
stella_650 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:13   #7
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Perché stai usando un intero come descrittore ottenuto dalla open() e non un descrittore ottenuto dalla fopen(): una delle due fileno() è superflua.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:23   #8
stella_650
Member
 
Iscritto dal: Dec 2006
Messaggi: 104
quindi volendo usare open lo posso fare cmq?
io faccio...
Codice:
int temp_file;
if(pid3==0)//è uno dei figli nel programma

	{	

		temp_file=fopen("temp.txt",O_RDWR, O_CREAT | O_TRUNC,0766);
		dup2(fileno(temp_file),fileno(stdout)); //non è corretto perchè non uso fopen

		execlp("sort","sort","-g",(char*)0); 
                perror("sort");
}
stella_650 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:29   #9
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Certo che puoi farlo, ma non come mi hai scritto ora: chiami fopen() con i parametri della open() e assegnando il valore ad un int...

Per il resto sì, basta che non usi fileno() su temp_file.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:36   #10
stella_650
Member
 
Iscritto dal: Dec 2006
Messaggi: 104
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Certo che puoi farlo, ma non come mi hai scritto ora: chiami fopen() con i parametri della open() e assegnando il valore ad un int...

Per il resto sì, basta che non usi fileno() su temp_file.
Codice:
int temp_file;
if(pid3==0)//è uno dei figli nel programma

	{	

		temp_file=open("temp.txt",O_RDWR, O_CREAT | O_TRUNC,0766);
	        dup2(temp_file,fileno(stdout));
		execlp("sort","sort","-g",(char*)0); 
                perror("sort");
giusto?

Ultima modifica di stella_650 : 01-07-2008 alle 18:39.
stella_650 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:42   #11
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Sì, dovrebbe andare bene così. Ma perché (char*)0 e non NULL?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:50   #12
stella_650
Member
 
Iscritto dal: Dec 2006
Messaggi: 104
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Ma perché (char*)0 e non NULL?
è equivalente ...

Quote:
Sì, dovrebbe andare bene così.
funziona infatti
stella_650 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:52   #13
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da stella_650 Guarda i messaggi
è equivalente ...
Appunto...
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2008, 18:58   #14
stella_650
Member
 
Iscritto dal: Dec 2006
Messaggi: 104
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Appunto...
hehe...mi hanno abituata così bho
stella_650 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Steam, Valve cambia le regole: le revisi...
Canva licenzia (anche) per colpa dell'IA...
Axerta: l’IA traina la crescita delle te...
Galaxy A38, la batteria cresce ma il pre...
Notifica su Facebook: 'Effettuerai la mi...
Xbox pronta a dire addio allo studio di ...
Meta stacca la spina: fine del supporto ...
Scambio file senza limiti: Google porta ...
Taiwan sbarca a EICMA 2026: maxi scooter...
L'integrazione tra Windows e Android mig...
Project Helix potrebbe abbandonare le Ex...
Galaxy Z Fold9 Ultra, fotocamere ferme a...
Hacker prendono di mira il plasma per le...
In&motion a EICMA 2026: l'airbag sma...
ChatGPT, 1,2 miliardi di utenti e un qui...
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: 15:45.


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