Un saluto a tutto il forum,
premetto che sono un newbie e spero in un vostro aiuto.

Cerco di spiegare quello che vorrei realizzare.
Ho trovato una funzione scritta in C che funziona perfettamente.
Ora vorrei inglobarla nel mio programma principale (scritto in C++), ma ci sarebbe un problema perchè questa funzione prende come input un file e poi lo elabora.
Mi spiego meglio postando un pezzo del programma:

Codice PHP:
void main (argcargv)
  
int argc;
  
char **argv;
{
  
FILE *fd;
  
graph *gr;

  if  (
argc != 2)
   { 
fprintf (stderr"parameter missing\n");
     
fprintf (stderr"usage prg <input filename>\n");
     exit (
1);
   }

  if ((
fd fopen (argv[1], "r")) == NULL)
   { 
fprintf(stderr"Unable to open %s\n"argv[1]);
     exit (
1);
   }

  
gr get_graph (fd);
  if (
gr == (graph *) 0)
   { 
close (fd);
     exit (
1);
   }
  
close (fd);
ecc..ecc.. 
Come si vede il programma in "standalone" funziona cosi da riga di comando:
prg FILE.dat
(nel FILE.dat ci sono dei valori da elaborare)

Nel mio programma principale tutti i valori presenti nel FILE.dat ce li ho in memoria.
Il problema è:
"Come faccio a passarli alla funzione?"
Infatti, la funzione si aspetta un puntatore ad un file.

Vorrei evitare di stravolgere il programma che ho trovato, perchè le modifiche sarebbero troppe e rischierei di "rovinarlo" in quanto ci sono molte funzioni (come ad esempio get_graph) che si aspettano una variabile di tipo FILE (*fd) e quindi dovrei andarli tutti a modificare.
Esiste un modo per evitare questo?

Un modo veramente schifoso ed immediato (che ho già testato efficientemente) sarebbe scrivere i valori che c'ho in memoria in un file e poi passare la char[] che contiene la path al FILE.dat alla funzione che poi andrà ad elaborarlo......ma è brutto

Spero di essermi spiegato al meglio, grazie davvero per l'aiuto.
Ciao.