exec.c
来自「Newlib 嵌入式 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 + -
显示快捷键?