1*c9945492SAndroid Build Coastguard Worker #include <unistd.h> 2*c9945492SAndroid Build Coastguard Worker #include <stdarg.h> 3*c9945492SAndroid Build Coastguard Worker execlp(const char * file,const char * argv0,...)4*c9945492SAndroid Build Coastguard Workerint execlp(const char *file, const char *argv0, ...) 5*c9945492SAndroid Build Coastguard Worker { 6*c9945492SAndroid Build Coastguard Worker int argc; 7*c9945492SAndroid Build Coastguard Worker va_list ap; 8*c9945492SAndroid Build Coastguard Worker va_start(ap, argv0); 9*c9945492SAndroid Build Coastguard Worker for (argc=1; va_arg(ap, const char *); argc++); 10*c9945492SAndroid Build Coastguard Worker va_end(ap); 11*c9945492SAndroid Build Coastguard Worker { 12*c9945492SAndroid Build Coastguard Worker int i; 13*c9945492SAndroid Build Coastguard Worker char *argv[argc+1]; 14*c9945492SAndroid Build Coastguard Worker va_start(ap, argv0); 15*c9945492SAndroid Build Coastguard Worker argv[0] = (char *)argv0; 16*c9945492SAndroid Build Coastguard Worker for (i=1; i<argc; i++) 17*c9945492SAndroid Build Coastguard Worker argv[i] = va_arg(ap, char *); 18*c9945492SAndroid Build Coastguard Worker argv[i] = NULL; 19*c9945492SAndroid Build Coastguard Worker va_end(ap); 20*c9945492SAndroid Build Coastguard Worker return execvp(file, argv); 21*c9945492SAndroid Build Coastguard Worker } 22*c9945492SAndroid Build Coastguard Worker } 23