execlp.c 398 B

123456789101112131415161718192021
  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. return execvp(file, argv);
  19. }
  20. }