⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 execvp.c

📁 KPIT GNU Tools is a set of GNU development tools for Renesas microcontrollers.
💻 C
字号:
/* execvp.c *//* This and the other exec*.c files in this directory require    the target to provide the _execve syscall.  */#include <_ansi.h>#include <stdlib.h>#include <unistd.h>#include <dirent.h>#include <string.h>#include <errno.h>#include <ctype.h>#define PATH_DELIM ':'/* * Copy string, until c or <nul> is encountered. * NUL-terminate the destination string (s1). */static char *_DEFUN (strccpy, (s1, s2, c),	char *s1 _AND	char *s2 _AND	char c){  char *dest = s1;  while (*s2 && *s2 != c)    *s1++ = *s2++;  *s1 = 0;  return dest;}int_DEFUN (execvp, (file, argv),	_CONST char *file _AND	char * _CONST argv[]){  char *path = getenv ("PATH");  char buf[MAXNAMLEN];  /* If $PATH doesn't exist, just pass FILE on unchanged.  */  if (!path)    return execv (file, argv);  /* If FILE contains a directory, don't search $PATH.  */  if (strchr (file, '/')      )    return execv (file, argv);  while (*path)    {      strccpy (buf, path, PATH_DELIM);      /* An empty entry means the current directory.  */      if (*buf != 0 && buf[strlen(buf) - 1] != '/')	strcat (buf, "/");      strcat (buf, file);      if (execv (buf, argv) == -1 && errno != ENOENT)	return -1;      while (*path && *path != PATH_DELIM)	path++;      if (*path == PATH_DELIM)	path++;			/* skip over delim */    }  return -1;}

⌨️ 快捷键说明

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