diff options
Diffstat (limited to 'libc/unistd/execle.c')
-rw-r--r-- | libc/unistd/execle.c | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/libc/unistd/execle.c b/libc/unistd/execle.c deleted file mode 100644 index 4003ee6be..000000000 --- a/libc/unistd/execle.c +++ /dev/null @@ -1,50 +0,0 @@ - -#include <stdlib.h> -#include <unistd.h> -#include <stdarg.h> - -extern int execvep(const char *path, char *const argv[], char *const envp[]); - -int execle(const char *file, const char *arg, ...) -{ - const char *shortargv[16]; - const char **argv; - const char *c; - int i; - va_list args; - const char *const *envp; - - i = 1; - - va_start(args, arg); - - do { - c = va_arg(args, const char *); - - i++; - } while (c); - - va_end(args); - - if (i <= 16) - argv = shortargv; - else { - argv = (const char **) alloca(sizeof(char *) * i); - } - - argv[0] = arg; - i = 1; - - va_start(args, arg); - - do { - argv[i] = va_arg(args, const char *); - } while (argv[i++]); - - envp = va_arg (args, const char *const *); - va_end(args); - - i = execvep(file, (char *const *) argv, (char *const *) envp); - - return i; -} |