execl.c - 9base - revived minimalist port of Plan 9 userland to Unix
 (HTM) git clone git://git.suckless.org/9base
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       execl.c (393B)
       ---
            1 #include <u.h>
            2 #include <libc.h>
            3 
            4 int
            5 execl(char *prog, ...)
            6 {
            7         int i;
            8         va_list arg;
            9         char **argv;
           10 
           11         va_start(arg, prog);
           12         for(i=0; va_arg(arg, char*) != nil; i++)
           13                 ;
           14         va_end(arg);
           15 
           16         argv = malloc((i+1)*sizeof(char*));
           17         if(argv == nil)
           18                 return -1;
           19 
           20         va_start(arg, prog);
           21         for(i=0; (argv[i] = va_arg(arg, char*)) != nil; i++)
           22                 ;
           23         va_end(arg);
           24 
           25         exec(prog, argv);
           26         free(argv);
           27         return -1;
           28 }
           29