/* * This program provides a wrapper to another command but ensuring that the * lubheap memory management system is used in preference to the native one */ #include #include #include #include "lub/heap.h" void usage(const char *prog) { printf("%s [-l] command [args ...]\n" "\n" " This application invokes the specified\n" " command utilsing the lubheap memory management\n" " library.\n" "\n" " -l - enable leak detection\n" " command - the program to run\n\n", prog); exit(-1); } int main(int argc, char **argv, char **envp) { const char *prog = *argv; const char *path; --argc,++argv; if(!argc) { usage(prog); } path = *argv; /* check to see whether this program exists in the current path */ /* replace the current process having first set up the memory management system */ lub_heap_init(prog); return execve(path,argv,envp); }