xref: /aosp_15_r20/external/musl/src/process/execlp.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
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 Worker int 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