File:  [CSRG BSD Unix] / 43BSD / ucb / dbx / tests / noenv.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 16:12:55 2018 UTC (8 years, 1 month ago) by root
Branches: MAIN, BSD
CVS tags: HEAD, BSD43
BSD 4.3

/*
 * Exec a program with no environment.
 */

#include <stdio.h>

extern int errno;
extern char *getenv(), *index();

main (argc, argv)
int argc;
char *argv[];
{
    execvep(argv[1], &argv[1], 0);
    printf("exec failed, errno %d\n", errno);
}

execvep (name, argv, envp)
char *name, *argv[], *envp[];
{
    char *path;
    register char *cp;
    char fullname[1000];

    path = getenv("PATH");
    if (path == NULL) {
	path = "";
	cp = NULL;
    } else {
	cp = index(path, ':');
    }
    for (;;) {
	if (cp != NULL) {
	    *cp = '\0';
	}
	sprintf(fullname, "%s/%s", path, name);
	execve(fullname, argv, envp);
	if (cp != NULL) {
	    path = cp + 1;
	    cp = index(path, ':');
	} else {
	    break;
	}
    }
    return -1;
}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.