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

📄 fig12.13

📁 unix环境高级编程第二版配套源代码 unix环境高级编程第二版配套源代码
💻 13
字号:
#include <limits.h>#include <string.h>#include <pthread.h>#include <stdlib.h>static pthread_key_t key;static pthread_once_t init_done = PTHREAD_ONCE_INIT;pthread_mutex_t env_mutex = PTHREAD_MUTEX_INITIALIZER;extern char **environ;static voidthread_init(void){	pthread_key_create(&key, free);}char *getenv(const char *name){	int		i, len;	char	*envbuf;	pthread_once(&init_done, thread_init);	pthread_mutex_lock(&env_mutex);	envbuf = (char *)pthread_getspecific(key);	if (envbuf == NULL) {		envbuf = malloc(ARG_MAX);		if (envbuf == NULL) {			pthread_mutex_unlock(&env_mutex);			return(NULL);		}		pthread_setspecific(key, envbuf);	}	len = strlen(name);	for (i = 0; environ[i] != NULL; i++) {		if ((strncmp(name, environ[i], len) == 0) &&		  (environ[i][len] == '=')) {			strcpy(envbuf, &environ[i][len+1]);			pthread_mutex_unlock(&env_mutex);			return(envbuf);		}	}	pthread_mutex_unlock(&env_mutex);	return(NULL);}

⌨️ 快捷键说明

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