diff --git a/sources/nix20/extra/execlp.c b/sources/nix20/extra/execlp.c new file mode 100644 index 0000000..5b5a1e5 --- /dev/null +++ b/sources/nix20/extra/execlp.c @@ -0,0 +1,25 @@ +#include +#include + +int execlp(const char * file, const char *arg, ...) { + va_list v; + + // count + va_start(v, arg); + int argc = 1; + while (va_arg(v, const char *)) { + ++argc; + } + va_end(v); + + const char * argv[argc + 1]; + argv[0] = arg; + + va_start(v, arg); + for (int i = 1; i < argc; ++i) { + argv[i] = va_arg(v, const char *); + } + va_end(v); + + return execvp(file, argv); +}