getenv.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 37 行

C
37
字号
#include <u.h>#include <libc.h>char*getenv(char *name){	int r, f;	long s;	char *ans;	char *p, *ep, ename[100];	if(strchr(name, '/') != nil)		return nil;	snprint(ename, sizeof ename, "/env/%s", name);	if(strcmp(ename+5, name) != 0)		return nil;	f = open(ename, OREAD);	if(f < 0)		return 0;	s = seek(f, 0, 2);	ans = malloc(s+1);	if(ans) {		setmalloctag(ans, getcallerpc(&name));		seek(f, 0, 0);		r = read(f, ans, s);		if(r >= 0) {			ep = ans + s - 1;			for(p = ans; p < ep; p++)				if(*p == '\0')					*p = ' ';			ans[s] = '\0';		}	}	close(f);	return ans;}

⌨️ 快捷键说明

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