execlp.c 412 B

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