Ehi, per questo pezzo di codice, la persona che ha scritto il sistema comunica i dati tra processi utilizzando file di testo. Ho un loop che sembra (per tutti gli effetti) come questo:Esiste un motivo per cui fopen() non funzionerebbe dopo diverse centinaia di aperture?
while (true)
{
//get the most up-to-date info from the other processes
pFile = fopen(paramsFileName, "r");
// Do a bunch of stuff with pFile
Sleep(100);
}
Questo lavoro per diverse centinaia di volte, ma per qualsiasi motivo verrà restituito NULL dopo un po ', anche se ha aperto lo stesso file percorso già centinaia di volte! Ho ricontrollato che il file esiste e contiene i dati al suo interno quando il fopen restituisce NULL e ha tentato di inserire un ritardo/riprovare lì senza alcun effetto.
Cosa puoi pensare che ciò potrebbe causare questo?
La maggior parte dei sistemi operativi ha un limite al numero di file che possono essere aperti contemporaneamente. Su quale sistema operativo funziona? –
http://www.word-detective.com/2009/01/16/intensive-purposes/ –
Windows 7. Provare ora per vedere se fclose() risolve il mio problema. Odio sistemare il codice di altre persone ..... – Paul