OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [uclinux/] [uC-libc/] [misc/] [execl.c] - Rev 1771

Go to most recent revision | 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;
}
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.