PDA

Visualizza la versione completa : [C] chiamare con execl un funzione in altro file


paoloava
19-06-2008, 16:35
Ciao, a tutti, ho provato a cercare una discussione simile e mi sembra di non averla vista.

Spiego il mio problema dovrei chiamare con una execl una funzione che si trova in un altro file.

Se tutti e 2 i file hanno un main funziona nessun problema ma ora dovrei creare un makefile e in compilazione mi da errore se trova il main in entrambi i file.

codice:

file1.c



main() {
sono_il_padre = fork()
if (sono_il_padre) {
wait(0);
} else {
.....

execl("file2", "stampa", charpid,0);

....
exit(0);
}


file2



#include<stdio.h>

int stampa(int argc, char** argv) {
printf("\nprova\n");
fflush(stdout);
return 0;
}

in sostanza non arriva alla funziona stampa del file2 e non so come risolvere la cosa....

Grazie

P.

mondobimbi
19-06-2008, 17:54
le exec ... in tutte le sue incarnazioni servono per dare il controllo ad un altro programma eseguibile non ad eseguire una funzione.
Se vuoi seguire questa strada devi fare due compilazioni e creare due eseguibili, dove nel secondo devi mettere la funzione che vuoi richiamare che deve perņ essere nel main.
In alternativa puoi creare una libreria dinamica, compili con le opzioni richieste e generi un file normalmente con estensione .so. Dal tue eseguibile richiami la funzione di questa libreria dinamica esattamente come se fosse nel tuo eseguibile.
ciao
sergio

paoloava
20-06-2008, 07:50
Grazie mille per l' aiuto!! E per la risposta tempestiva!

P.

Loading