exec.c

来自「标准c库代码,可以应用于各个系统提供了大量的基本函数」· C语言 代码 · 共 55 行

C
55
字号
#include <sys/unistd.h>#include <errno.h>extern char **environ;intexecv (const char *path, char * const *args) {	extern int execve (const char *, char * const *, char * const*);	return execve (path, args, environ);}intexecl(const char *path, const char *arg1, ...) {	return execv (path, &arg1);}/* * Copy string, until c or <nul> is encountered. * NUL-terminate the destination string (s1). */static char *strccpy (char *s1, char *s2, char c) {	char *dest = s1;	while (*s2 && *s2 != c) {		*s1++ = *s2++;	}	*s1 = 0;	return dest;}intexecvp(const char *file, char * const *args) {	extern char *getenv (const char *);  	char *path = getenv ("PATH");	char buf[MAXNAMLEN];	if (file[0] == '/') {	/* absolute pathname -- easy out */		return execv (file, args);	}	buf[0] = 0;	/* lots of initialization here 8-) */	while (*path) {		strccpy (buf, path, ':');		strcat (buf, "/");		strcat (buf, file);		execv (buf, args);		if (errno != ENOENT)			return -1;		while (*path && *path != ':')			path++;	}	return -1;}

⌨️ 快捷键说明

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