Xhack

Un forum dedicato all'hacking
 
IndiceIndice  PortalePortale  CalendarioCalendario  FAQFAQ  CercaCerca  RegistrareRegistrare  Lista utentiLista utenti  GruppiGruppi  Connessione  

Condividere | 
 

 Variabili volatili

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso 
AutoreMessaggio
darkjoker
Admin
Admin


Numero di messaggi: 813
Data d'iscrizione: 30.07.07

MessaggioOggetto: Variabili volatili   Gio Dic 27, 2007 4:39 pm

Studiandomi un po di C mi sono inbattuto nelle variabili volatili, ovvero delle variabili che possono essere, da come ho capito, modificate da altri processi...
Codice:

volatile int var = 12;

Ora, sapete dirmi come posso, con un programma in C, modificare una variabile volatile di un'altro programma...?
grazie
ciao Very Happy

_________________
L'unico computer sicuro, è un computer spento.

Nel software esiste sempre almeno un bug, generalmente è localizzabile tra la tastiera e la sedia

Tornare in alto Andare in basso
Vedere il profilo dell'utente
The_Nano93
membro
membro


Numero di messaggi: 104
Età: 1004
Localizzazione: Da qualche parte nell'universo....
Data d'iscrizione: 28.09.07

MessaggioOggetto: Re: Variabili volatili   Dom Dic 30, 2007 11:14 pm

mmm.... non ne ho la più pallida idea!!! non sapevo neanche che esistessero.
proverò a cercare in giro...
Tornare in alto Andare in basso
Vedere il profilo dell'utente
The_Nano93
membro
membro


Numero di messaggi: 104
Età: 1004
Localizzazione: Da qualche parte nell'universo....
Data d'iscrizione: 28.09.07

MessaggioOggetto: Re: Variabili volatili   Dom Dic 30, 2007 11:29 pm

non ho trovato niente.
credo che usando un altro programma si possa modificare col semplice var=...;

devi chiedere a Blacklight
Tornare in alto Andare in basso
Vedere il profilo dell'utente
darkjoker
Admin
Admin


Numero di messaggi: 813
Data d'iscrizione: 30.07.07

MessaggioOggetto: Re: Variabili volatili   Mer Gen 02, 2008 10:08 am

blacclight se ne è andato...
impara a leggere negli annunci Wink

_________________
L'unico computer sicuro, è un computer spento.

Nel software esiste sempre almeno un bug, generalmente è localizzabile tra la tastiera e la sedia

Tornare in alto Andare in basso
Vedere il profilo dell'utente
BlackLight
Moderatore
Moderatore


Numero di messaggi: 277
Età: 25
Data d'iscrizione: 22.08.07

MessaggioOggetto: Re: Variabili volatili   Mer Gen 02, 2008 4:15 pm

darkjoker ha scritto:
blacclight se ne è andato...


Tranquilli leggo ancora il forum di tanto in tanto e se le domande sono intelligenti non vedo perché di tanto in tanto non dovrei rispondere...

Da nessuna parte è scritto che una variabile volatile è modificabile da un altro programma. Due programmi sono due entità risedenti in memoria con due stack diversi che in nessuna maniera possono comunicare, quindi se ho una variabile volatile in Word e voglio leggerne il valore da Excel non posso farlo in nessun modo. È scritto casomai che con volatile si identifica una variabile che può essere modificata da un altro processo o thread diverso da quello che l'ha dichiarata, ma sempre all'interno dello stesso programma. Detto questo, la keyword volatile non aggiunge praticamente nulla di nuovo alla variabile: dà solo quest'informazione aggiuntiva al compilatore, ovvero che quella variabile può essere modificata anche da altri processi e thread all'interno dell'applicazione e quindi di prenderla 'con le pinze' e non ottimizzarla. Per intenderci, se io ho un codice del genere:

Codice:
int var;

void foo()  {
  var=0;

  while (var>-10)
    printf ("Ciao\n");
}


Ora se il compilatore fa ottimizzazione potrebbe notare che effettivamente var è sempre maggiore di -10 e far diventare quel codice

Codice:
int var;

void foo()  {
  var=0;

  while (TRUE)
    printf ("Ciao\n");
}


Ma questo potrebbe portare problemi se la variabile var è modificata anche da altri thread o processi, in quanto il suo valore potrebbe essere modificato senza che il processo di ottimizzazione fatto dal compilatore se ne accorga. Dichiarandola come volatile è come se gli dicessi 'guarda, questa roba qui la modifica anche qualcun altro, non farci su robe strane, non toccarla e non farci su dell'ottimizzazione'.

_________________
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/CM/CC/E/IT/LS/M d-(--) s:- a-- C+++$ UBL++++$ P+++ L+++++$ E- W+++ N+ o? K? w-- !O !M>+ !V PS+++ PE-- Y++ PGP+ !t !5 !X R+ tv-- b++>+++ DI? D+ G>+++ e++>++++ h r++ y+++
------END GEEK CODE BLOCK------

Codice:
blacklight@nightmare:/$ touch figa
touch: cannot touch `figa': Permission denied
Tornare in alto Andare in basso
Vedere il profilo dell'utente http://blacklight.gotdns.org
darkjoker
Admin
Admin


Numero di messaggi: 813
Data d'iscrizione: 30.07.07

MessaggioOggetto: Re: Variabili volatili   Mer Gen 02, 2008 4:30 pm

grazie black; illuminante.

_________________
L'unico computer sicuro, è un computer spento.

Nel software esiste sempre almeno un bug, generalmente è localizzabile tra la tastiera e la sedia

Tornare in alto Andare in basso
Vedere il profilo dell'utente
 

Variabili volatili

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto 
Pagina 1 su1

 Argomenti simili

-
» Codici bbcode da Utilizzare

Permesso del forum:Non puoi rispondere agli argomenti in questo forum
Xhack :: Programmazione :: C/C++-