xref: /original-bsd/old/dbx/tests/noenv.c (revision e59fb703)
1 /*
2  * Exec a program with no environment.
3  */
4 
5 #include <stdio.h>
6 
7 extern int errno;
8 extern char *getenv(), *index();
9 
10 main (argc, argv)
11 int argc;
12 char *argv[];
13 {
14     execvep(argv[1], &argv[1], 0);
15     printf("exec failed, errno %d\n", errno);
16 }
17 
18 execvep (name, argv, envp)
19 char *name, *argv[], *envp[];
20 {
21     char *path;
22     register char *cp;
23     char fullname[1000];
24 
25     path = getenv("PATH");
26     if (path == NULL) {
27 	path = "";
28 	cp = NULL;
29     } else {
30 	cp = index(path, ':');
31     }
32     for (;;) {
33 	if (cp != NULL) {
34 	    *cp = '\0';
35 	}
36 	sprintf(fullname, "%s/%s", path, name);
37 	execve(fullname, argv, envp);
38 	if (cp != NULL) {
39 	    path = cp + 1;
40 	    cp = index(path, ':');
41 	} else {
42 	    break;
43 	}
44     }
45     return -1;
46 }
47