Ciao a tutti, ho un problema con la gestione di una variabile globale a più files. Ho dichiarato in un header la mia variabile di tipo int, in tutti i files che utilizzano questa variabile ho poi incluso il suddetto header. Il punto è che se uno qualunque dei files aggiorna la variabile, il valore non cambia negli altri. Vi faccio un esempio:
cond.h
cond.c
codice:
#include "cond.h"
int val = 0;
file1.c
codice:
#include "cond.h"
extern int val;
void foo(){
val = 1;
}
file2.c
codice:
#include "cond.h"
extern int val;
void foo(){
printf("%d", val);
}
Eseguendo il programma con un makefile, avviando i due eseguibili, ottengo la stampa del valore 0, ovvero il valore non aggiornato della variabile.
L'esempio che ho scritto sopra è solo una generalizzazione del mio problema, che in realtà è quello del produttore consumatore. La variabile mi serve per sospendere o riattivare uno dei due processi.
Cosa sbaglio?