getenv.c

来自「一次性口令认证系统SKEY的实现」· C语言 代码 · 共 65 行

C
65
字号
/* * Copyright (c) 1987 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the University of California, Berkeley.  The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */#if defined(LIBC_SCCS) && !defined(lint)static char sccsid[] = "@(#)getenv.c	5.5 (Berkeley) 6/27/88";#endif /* LIBC_SCCS and not lint */#include <stdio.h>/* * getenv -- *	Returns ptr to value associated with name, if any, else NULL. */char *getenv(name)	char *name;{	int offset;	char *_findenv();	return(_findenv(name, &offset));}/* * _findenv -- *	Returns pointer to value associated with name, if any, else NULL. *	Sets offset to be the offset of the name/value combination in the *	environmental array, for use by setenv(3) and unsetenv(3). *	Explicitly removes '=' in argument name. * *	This routine *should* be a static; don't use it. */char *_findenv(name, offset)	register char *name;	int *offset;{	extern char **environ;	register int len;	register char **P, *C;	for (C = name, len = 0; *C && *C != '='; ++C, ++len);	for (P = environ; *P; ++P)		if (!strncmp(*P, name, len))			if (*(C = *P + len) == '=') {				*offset = P - environ;				return(++C);			}	return(NULL);}

⌨️ 快捷键说明

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