Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marathon: arriva il Fortnite hardcore
Marathon: arriva il Fortnite hardcore
Marathon è il titolo multiplayer competitivo del momento. Ecco quali sono le caratteristiche di gioco principali, insieme alle nostre prime considerazioni dopo qualche "run" nell'extraction shooter di Bungie
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
A New York HP ha messo al centro della scena HP IQ, la piattaforma di IA locale da 20 miliardi di parametri. L’abbiamo vista in funzione: è uno strumento che funziona, pensato per un target specifico, con vantaggi reali e limiti altrettanto evidenti
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-05-2007, 12:00   #1
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
[c] iexeclp

salve ragazzi ho il seguente problema faccio una kiamata da client c alla funzione

if ((execlp("python","Main.py",(char*)0)))

per eseguire un file python. Solo che alla chiamata mi appare la shell di python come se il secondo parametro passato Main.py non esistesse

qualcuno ha qualke idea?

Codice:
else if (pid == 0)// Processo figlio da modificare quando ci sono + elaborazioni da fare
						{
							sleep(3);	
							if ((execlp("python","Main.
py",(char*)0)))
							//if ((execlp("streamer","-c","/dev/video0","-o","elab.jpeg",(char*)0)))
							{	
								printf("errore execlp\n");
							}
							elaborazione=1;
							exit(0);
						}
						//else					//processo padre attende il figlio
						//{
							printf("aspetto ke finisca il figlio\n");
							while (wait(&status) != pid)
							printf("mio figlio ha finito\n");
							elaborazione=1;
Grazie
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 12:10   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da maforast Guarda i messaggi
salve ragazzi ho il seguente problema faccio una kiamata da client c alla funzione

if ((execlp("python","Main.py",(char*)0)))
Il primo argomento cioè arg[0] deve comunque essere il nome del programma!

Quindi:
if ((execlp("python","python","Main.py",(char*)0)))
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 12:19   #3
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da andbin Guarda i messaggi
Il primo argomento cioè arg[0] deve comunque essere il nome del programma!

Quindi:
if ((execlp("python","python","Main.py",(char*)0)))
Grazie per la risposta veloce ho provato ma nulla da fare non mi chiama il file Main ma si apre la shell di python

Python 2.4.3 (#2, Oct 6 2006, 07:52:30)
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 12:35   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da maforast Guarda i messaggi
Grazie per la risposta veloce ho provato ma nulla da fare non mi chiama il file Main ma si apre la shell di python
Dovrebbe essere come ho detto io.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 12:49   #5
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da andbin Guarda i messaggi
Dovrebbe essere come ho detto io.



Ho provato ad aggiungere #!/usr/bin/env python sul programma Main.py

poi ho fato i permessi di esecuzione al file chmod +x main.py

ed infine ho aggiunto nel codice
if ((execlp("./Main.py",(char*)0)))

ma niente mi pare sempre la schermata di shell eppure io non chiamo affatto python... Non è che la funzione exec vuole qualke altro parametro?
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 12:54   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da maforast Guarda i messaggi
Ho provato ad aggiungere #!/usr/bin/env python sul programma Main.py

poi ho fato i permessi di esecuzione al file chmod +x main.py

ed infine ho aggiunto nel codice
if ((execlp("./Main.py",(char*)0)))

ma niente mi pare sempre la schermata di shell eppure io non chiamo affatto python... Non è che la funzione exec vuole qualke altro parametro?
Non so che dirti .... io ho fatto una prova molto semplice e funziona:
Codice:
#include <unistd.h>

int main (void)
{
    execlp ("python", "python", "prova.py", (char*)0);
    return 0;
}
Poi ho scritto un file prova.py con dentro:
Codice:
print "hello world"
E funziona perfettamente.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 12:58   #7
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da andbin Guarda i messaggi
Non so che dirti .... io ho fatto una prova molto semplice e funziona:
Codice:
#include <unistd.h>

int main (void)
{
    execlp ("python", "python", "prova.py", (char*)0);
    return 0;
}
Poi ho scritto un file prova.py con dentro:
Codice:
print "hello world"
E funziona perfettamente.
Ci credo fi gurati mi sa che allora è ubuntu che sta a problemi a volte fa delle cose un pò strane... cmq forse è la fork che crea problemi bha non so cosa pensare
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 13:16   #8
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da maforast Guarda i messaggi
cmq forse è la fork che crea problemi bha non so cosa pensare
Ho provato anche con una fork ed è ok.
Hai provato a lanciare il comando a mano python Main.py? Cosa succede?
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 13:40   #9
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da andbin Guarda i messaggi
Ho provato anche con una fork ed è ok.
Hai provato a lanciare il comando a mano python Main.py? Cosa succede?
MI apre il programma in maniera corretta
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 13:53   #10
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da maforast Guarda i messaggi
MI apre il programma in maniera corretta
Puoi provare a lanciare python come ho fatto io nell'esempietto "C"?? Giusto per curiosità, per capire se è proprio la execlp che è "fusa".
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 08:32   #11
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da andbin Guarda i messaggi
Puoi provare a lanciare python come ho fatto io nell'esempietto "C"?? Giusto per curiosità, per capire se è proprio la execlp che è "fusa".


Ho provato col tuo codice e funziona correttamente... Non saprei adesso il motivo per cui nel mio non funziona...
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 08:49   #12
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da maforast Guarda i messaggi
Ho provato col tuo codice e funziona correttamente... Non saprei adesso il motivo per cui nel mio non funziona...
Ok ho reinstallato il compilatore e adesso funziona tutto grazie di tutto scusa se ti ho fatto perdere tempo... anzi visto che ci siamo potresti dirmi se la fork è fatta bene cioè se il padre attende che il figlio finisca il suo lavoro?

Codice:
if (elaborazione==0)
					{
						if ((pid=fork() ) < 0) 
						{
							printf("Errore di fork\n");
						}
						else if (pid == 0)// Processo figlio da modificare quando ci sono + elaborazioni da fare
						{
							//sleep(3);	
							if (execlp ("python", "python", "Main.py", (char*)0))
//if ((execlp("streamer","-c","/dev/video0","-o","elab.jpeg",(char*)0)))
							{	
								printf("errore execlp\n");
							}
							elaborazione=1;
							exit(0);
						}
						else					//processo padre attende il figlio
						{
							printf("aspetto ke finisca il figlio\n");
							while (wait(&status) != pid)
							printf("mio figlio ha finito\n");
							elaborazione=1;
						}

Grazie
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 08:56   #13
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da maforast Guarda i messaggi
potresti dirmi se la fork è fatta bene cioè se il padre attende che il figlio finisca il suo lavoro? while (wait(&status) != pid)
Se hai 1 solo figlio il while non serve, tanto wait è "bloccante", attende che un figlio termini e se ne hai 1 solo è chiaro che ritorna appena esso termina.

P.S.: nota che fare elaborazione=1 nel figlio non serve, visto che modifica solo la sua "copia" della variabile 'elaborazione'.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 09:08   #14
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da andbin Guarda i messaggi
Se hai 1 solo figlio il while non serve, tanto wait è "bloccante", attende che un figlio termini e se ne hai 1 solo è chiaro che ritorna appena esso termina.

P.S.: nota che fare elaborazione=1 nel figlio non serve, visto che modifica solo la sua "copia" della variabile 'elaborazione'.
é vero adesso la levo dal figlio non ci avevo pensato non mi ricordo nemmeno + perchè l'ho messa

Quindi dovrei mettere nell'else del padre solo wait(pid) giusto?

Tnx so much
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 09:17   #15
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da maforast Guarda i messaggi
Quindi dovrei mettere nell'else del padre solo wait(pid) giusto?
No, wait(&status);
Puoi testare eventualmente se wait ritorna -1 in caso di errore.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 09:39   #16
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da andbin Guarda i messaggi
No, wait(&status);
Puoi testare eventualmente se wait ritorna -1 in caso di errore.
k grazie
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 14:09   #17
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da andbin Guarda i messaggi
No, wait(&status);
Puoi testare eventualmente se wait ritorna -1 in caso di errore.
Scusa se ti disturbo ancora, ma ho carenza di fork in c, secondo te posso fare in modo di passare delle informazioni da padre a figlio senza aspettare ke il figlio termini per primo?

Mi spiego, sto creando un processo che come già hai visto mi manda in esecuzione tramite exec un programma in python. Da questo faccio un'elaborazione di una immagine e salvo i risultati in un file (unico modo che mi è venuto in mente per far condividere informazioni tra c e python).
Successivamente faccio fare dal processo padre, una volta che il figlio ha teminato, un controllo sui risultati.
Il problema sta proprio quì, nel senso, che io non vorrei far terminare il figlio ma solo metterlo in attesa, poichè dopo che il padre termina la sua elaborazione dovrà fare un'altra chiamata exec a python per elaborare un'altra immagine sprecando tempo e risorse. Mentre se il figlio si fosse messo in attesa la seconda chiamata ad exec poteva essere evitata!

Hai qualche idea? ti metto per semplicità il codice riassunto per fare eventuali prove

Codice:
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>


//------------------------------------Variabili per il file--------------------
#define kFileDaLeggere          "prova.txt"
//#define kFileDaScrivere         "output.txt"
#define kLunghezzaMaxStringa    100

double      numero1;
char        *stringa;
//---------------------------------------Fine variabili file--------------------
FILE        *ingresso;
int status;
pid_t pid;


int main (void)
{
    	if ((pid=fork() ) < 0) 
			{
				printf("Errore di fork\n");
			}
		else if (pid == 0)//Processo figlio 
			{
				sleep(3);	
				if (execlp ("python", "python", "Main.py", (char*)0))
				{	
					printf("errore execlp\n");
				}
				//elaborazione=1;//qui nn ha senso perkè va a modificare solo la sua copia
				exit(0);
			}
			else//processo padre attende il figlio
			{
				printf("aspetto ke finisca il figlio\n");
				//while (wait(&status) != pid)
				wait(&status);
				printf("mio figlio ha finito\n");
				printf("Lettura dal file %s\n",kFileDaLeggere);
				ingresso=fopen(kFileDaLeggere,"r");
				if(ingresso==NULL)
				printf("Errore di I/O\n");
				stringa=calloc(kLunghezzaMaxStringa,sizeof(char));
				if(stringa==NULL)
				printf("Errore di memoria\n");
				fscanf(ingresso,"%s %lg",stringa,&numero1);
				printf("Classe: %s\nValore Massimo: %g\n",stringa,numero1);
				printf("\n");
				fclose(ingresso);
				if (numero1>90)
				{
					printf("il valore è accettabile\n");
				}	
				else 
				{
					printf("il valore è troppo piccolo\n") ;
				}
			return 0;
			}
}
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 15:21   #18
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da maforast Guarda i messaggi
Mi spiego, sto creando un processo che come già hai visto mi manda in esecuzione tramite exec un programma in python. Da questo faccio un'elaborazione di una immagine e salvo i risultati in un file (unico modo che mi è venuto in mente per far condividere informazioni tra c e python).
Successivamente faccio fare dal processo padre, una volta che il figlio ha teminato, un controllo sui risultati.
Il problema sta proprio quì, nel senso, che io non vorrei far terminare il figlio ma solo metterlo in attesa, poichè dopo che il padre termina la sua elaborazione dovrà fare un'altra chiamata exec a python per elaborare un'altra immagine sprecando tempo e risorse. Mentre se il figlio si fosse messo in attesa la seconda chiamata ad exec poteva essere evitata!
La questione è questa: la fork crea un processo figlio in cui inizialmente tutte le pagine di memoria sono condivise tra padre e figlio. La tecnica è quella del COW (copy on write), quando uno dei due processi scrive su una pagina, essa viene duplicata e quindi differenziata tra i due.
Quando nel processo figlio esegui una delle funzioni exec(), l'immagine del processo corrente viene totalmente rimpiazzata dal nuovo processo caricato. Quindi se esegui 'python', del tuo programma C non resta nulla, c'è solo più l'immagine del nuovo processo.
Quindi una volta che hai lanciato python, il processo è interamente sotto il suo controllo. Dal processo padre puoi aspettare la terminazione del figlio ma potresti anche comunicare con il figlio in vari modi (es. con le pipe) ma sono argomenti abbastanza complessi.

Se il tuo interesse è quello di sfruttare le potenzialità di python, c'è una possibilità interessante offerta da python stesso: incorporare python nella tua applicazione. Infatti python è un linguaggio "extendable" (estendibile) e "embeddable" (incorporabile).

Invece di eseguire l'interprete python come processo (figlio) separato, puoi inglobare l'interprete python nella tua applicazione. Potrai quindi impostare variabili, eseguire script, ecc... in modo diretto.

Se ti interessa questa soluzione, leggi <questo> documento. Purtroppo non so dirti di più perché di python ne so poco. Non credo che sia difficile incorporare python. In passato ho avuto la necessità di incorporare in una applicazione C l'interprete del linguaggio TCL e ti assicuro che non è stato difficile.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 15:29   #19
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da andbin Guarda i messaggi
La questione è questa: la fork crea un processo figlio in cui inizialmente tutte le pagine di memoria sono condivise tra padre e figlio. La tecnica è quella del COW (copy on write), quando uno dei due processi scrive su una pagina, essa viene duplicata e quindi differenziata tra i due.
Quando nel processo figlio esegui una delle funzioni exec(), l'immagine del processo corrente viene totalmente rimpiazzata dal nuovo processo caricato. Quindi se esegui 'python', del tuo programma C non resta nulla, c'è solo più l'immagine del nuovo processo.
Quindi una volta che hai lanciato python, il processo è interamente sotto il suo controllo. Dal processo padre puoi aspettare la terminazione del figlio ma potresti anche comunicare con il figlio in vari modi (es. con le pipe) ma sono argomenti abbastanza complessi.

Se il tuo interesse è quello di sfruttare le potenzialità di python, c'è una possibilità interessante offerta da python stesso: incorporare python nella tua applicazione. Infatti python è un linguaggio "extendable" (estendibile) e "embeddable" (incorporabile).

Invece di eseguire l'interprete python come processo (figlio) separato, puoi inglobare l'interprete python nella tua applicazione. Potrai quindi impostare variabili, eseguire script, ecc... in modo diretto.

Se ti interessa questa soluzione, leggi <questo> documento. Purtroppo non so dirti di più perché di python ne so poco. Non credo che sia difficile incorporare python. In passato ho avuto la necessità di incorporare in una applicazione C l'interprete del linguaggio TCL e ti assicuro che non è stato difficile.


Ti ringrazio mi leggo quel documento che mi hai dato e ti faccio sapere, ti dico solo che il mio programma in python a sua volta chioama altri 4 file sempre in python nn so se questo è un problema cmq mi leggo quel doc e poi ti faccio sapere grazie
maforast è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2007, 17:32   #20
maforast
Member
 
Iscritto dal: Aug 2003
Messaggi: 202
Quote:
Originariamente inviato da andbin Guarda i messaggi
La questione è questa: la fork crea un processo figlio in cui inizialmente tutte le pagine di memoria sono condivise tra padre e figlio. La tecnica è quella del COW (copy on write), quando uno dei due processi scrive su una pagina, essa viene duplicata e quindi differenziata tra i due.
Quando nel processo figlio esegui una delle funzioni exec(), l'immagine del processo corrente viene totalmente rimpiazzata dal nuovo processo caricato. Quindi se esegui 'python', del tuo programma C non resta nulla, c'è solo più l'immagine del nuovo processo.
Quindi una volta che hai lanciato python, il processo è interamente sotto il suo controllo. Dal processo padre puoi aspettare la terminazione del figlio ma potresti anche comunicare con il figlio in vari modi (es. con le pipe) ma sono argomenti abbastanza complessi.

Se il tuo interesse è quello di sfruttare le potenzialità di python, c'è una possibilità interessante offerta da python stesso: incorporare python nella tua applicazione. Infatti python è un linguaggio "extendable" (estendibile) e "embeddable" (incorporabile).

Invece di eseguire l'interprete python come processo (figlio) separato, puoi inglobare l'interprete python nella tua applicazione. Potrai quindi impostare variabili, eseguire script, ecc... in modo diretto.

Se ti interessa questa soluzione, leggi <questo> documento. Purtroppo non so dirti di più perché di python ne so poco. Non credo che sia difficile incorporare python. In passato ho avuto la necessità di incorporare in una applicazione C l'interprete del linguaggio TCL e ti assicuro che non è stato difficile.

Oggi in laboratorio ho incontrato un nuovo problema che ho risolto in un modo che tra un pò ti vado a spiegare. Prima però volevo sapere se invece di utilizzare una fork utilizzassi una vfork lo sapzio d'indirizzamente tra padre e figlio sarebbe lo stesso?

Il problema è il seguente:
Utilizzo un programma che si interfaccia con un robot, "player", il quale utilizza il device dev/video0 per acquisire immagini dalla camera. Avedo utilizzato una fork per avviare un nuovo processo (in python) che a sua volta fa uso del device dev/video0 tramite la libreria pyv4l per elaborare porzioni di immagini avviene un errore nella chiamata in quanto il device dev/video0 è già occupato da player. la soluzione che ho adottato è quella di annullare l'iscrizione del dispositivo subito prima di chiamare la fork exec e successivamente sottoscriverlo.

Visto che mi sembra una soluzione un pò macchinosa non potrei utilizzare la vfork per condividere le risorse tra padre e figlio?

Grazie
maforast è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
GeForce RTX 3080 raffreddata con un diss...
Proofpoint mette in sicurezza gli agenti...
Annunci falsi su Bakeca con dati veri di...
Attenzione alla truffa dell'assegno di A...
Addio al mito delle batterie a stato sol...
400 milioni e un obiettivo ambizioso: Re...
TCL 2026: la tecnologia SQD-Mini LED arr...
Gli aggiornamenti arriveranno, ma non si...
Monopattini elettrici: addio "Far W...
Mistral AI raccoglie 830 milioni di doll...
Hacker iraniani di Handala violano la Gm...
Chi è Eddie Dalton: il cantante d...
OVHcloud mette l'Italia al centro della ...
Zeekr 007 GT sold out in Cina, si passa ...
Hisense QLED 4K da 98'' e 85'' con 144Hz...
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: 19:23.


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