OLD | NEW |
1 #include <unistd.h> | 1 #include <unistd.h> |
2 #include <stdarg.h> | 2 #include <stdarg.h> |
3 | 3 |
4 int execle(const char *path, const char *argv0, ...) | 4 int execle(const char* path, const char* argv0, ...) { |
5 { | 5 int argc; |
6 » int argc; | 6 va_list ap; |
7 » va_list ap; | 7 va_start(ap, argv0); |
8 » va_start(ap, argv0); | 8 for (argc = 1; va_arg(ap, const char*); argc++) |
9 » for (argc=1; va_arg(ap, const char *); argc++); | 9 ; |
10 » va_end(ap); | 10 va_end(ap); |
11 » { | 11 { |
12 » » int i; | 12 int i; |
13 » » char *argv[argc+1]; | 13 char* argv[argc + 1]; |
14 » » char **envp; | 14 char** envp; |
15 » » va_start(ap, argv0); | 15 va_start(ap, argv0); |
16 » » argv[0] = (char *)argv0; | 16 argv[0] = (char*)argv0; |
17 » » for (i=1; i<=argc; i++) | 17 for (i = 1; i <= argc; i++) |
18 » » » argv[i] = va_arg(ap, char *); | 18 argv[i] = va_arg(ap, char*); |
19 » » envp = va_arg(ap, char **); | 19 envp = va_arg(ap, char**); |
20 » » va_end(ap); | 20 va_end(ap); |
21 » » return execve(path, argv, envp); | 21 return execve(path, argv, envp); |
22 » } | 22 } |
23 } | 23 } |
OLD | NEW |