URL
https://opencores.org/ocsvn/or1k_old/or1k_old/trunk
Subversion Repositories or1k_old
[/] [or1k_old/] [trunk/] [uclinux/] [uC-libc/] [misc/] [execl.c] - Rev 1782
Compare with Previous | Blame | View Log
#include <unistd.h> #include <stdarg.h> extern char ** environ; int execl(path, arg) const char * path; const char * arg; { const char *shortargv[16]; const char **argv; const char * c; int i; va_list args; i = 1; va_start(args, arg); do { c = va_arg (args, const char *); i++; } while (c); va_end(args); if (i <= 16) argv = shortargv; else { argv = (const char**)malloc(sizeof(char*) * i); } argv[0] = arg; i = 1; va_start(args, arg); do { argv[i] = va_arg (args, const char *); } while (argv[i++]); va_end(args); i = execve(path, argv, environ); if (argv != shortargv) free(argv); return i; }