Salve,
il mio obiettivo è di riuscire a ridefinire una funzione della libreiria del c, ad esempio la funzione exit( int ) che provoca l'uscita dal programma e che è definita in stdlib.h. Supponiamo che quando viene chiamata exit(n) io voglia eseguire una mia funzione myexit(n).
Per fare ciò ho definito un file stdlib.h che ho messo nella cartella locale del mio programma, e in cui importo la vera stdlib.h e subito dopo ridefinisco exit con myexit:
Codice PHP:
#ifndef MYSTDLIB_H
#define MYSTDLIB_H
//Con questa istruzione includo la libreria originaria; la
//includo riferendola col percorso completo per non confonderla
//col mio file stdlib.h
#include "/usr/include/stdlib.h"
//dichiaro il prototipo della mia funzione
void myexit(int);
//ridefinisco exit con myexit
#define exit myexit
#endif // MYSTDLIB_H
L'implementazione della myexit è quindi messa in un file .c . Ora se nel mio programma includo <stdlib.h> e chiamo exit viene sempre eseguita la funzione standard della libreria. Come posso fare invece per far eseguire la mia?
Analogamente vorrei ridefinire una macro, assert, definita in asssert.h.
Grazie e ciao.