execvep.c

来自「linux下用PCMCIA无线网卡虚拟无线AP的程序源码」· C语言 代码 · 共 47 行

C
47
字号
#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>int execvep(const char *path, char *__const argv[], char *__const envp[]){    if (!strchr(path, '/')) {	char *p = getenv("PATH");	if (!p)	    p = "/bin:/usr/bin";	for (; p && *p;) {	    char partial[FILENAME_MAX];	    char *p2;	    p2 = strchr(p, ':');	    if (p2) {		size_t len = p2 - p;		strncpy(partial, p, len);		partial[len] = 0;	    } else {		strcpy(partial, p);	    }	    if (strlen(partial))		strcat(partial, "/");	    strcat(partial, path);	    execve(partial, argv, envp);	    if (errno != ENOENT)		return -1;	    if (p2) {		p = p2 + 1;	    } else {		p = 0;	    }	}	return -1;    } else	return execve(path, argv, envp);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?