Originariamente inviato da }gu|do[z]{®©
hum.. macchinoso...

è l'unico sistema ?
in questa se vai in fondo vedi come ho gestito l'flock.
vero quello che dice Fabio sulla w ma il file fantoccio secondo me e' superfluo.
In pratica:
Codice PHP:
// vecchio numero di utenti
$utenti = file_get_contents('contatore.txt');
// apro e locko il file
$fp = fopen('contatore.txt', 'w');
@flock($fp, LOCK_EX); // @ perche' in win non va
// scrivo il nuovo numero
fwrite($fp, ++$utenti);
// slocko e chiudo il file
@flock($fp, LOCK_UN);
fclose($fp);
aggiungi magari un if((int)$utenti >= 1) prima dell' apertura in w e vai tranquillo che al massimo perdi una passata, ma non il contenuto 
[edit]
ok, faccio esempio 
codice:
$contatore = 'contatore.txt'; // file
$utenti = file_get_contents($contatore);// leggo
if((int)$utenti >= 1) { // non e' gia' aperto ?
$fp = fopen($contatore, 'w'); // apro e cancello
@flock($fp, LOCK_EX); // locko
fwrite($fp, ++$utenti); // scrivo
@flock($fp, LOCK_UN); // slocko
fclose($fp); // chiudo
}
[ edit2 la vendetta
]
codice:
// funzione ricorsiva, al massimo aspetta ...
function contatore($contatore) {
if(($utenti = (int)file_get_contents($contatore)) >= 1) {
$fp = fopen($contatore, 'w');
@flock($fp, LOCK_EX);
fwrite($fp, ++$utenti);
@flock($fp, LOCK_UN);
fclose($fp);
}
else
$utenti = contatore($contatore);
return $utenti;
}