execle.c raw

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