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 (argc, argv)
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.