www.pudn.com > unixtonxunchengxu.rar > UnionEnv.c


#include 
#include 

#include "UnionEnv.h"
//golbal  variable
PUnionEnviVariable	pUnionEnvi[MAXUNIONENVIVARIABLES]; 
int			UnionEnviVarNum = 0;

int UnionGetEnviVarNum()
{
	return(UnionEnviVarNum);
}

char *UnionGetEnviVarByIndex(int index)
{
	if (index >= UnionEnviVarNum)
		return(NULL);
		
	if (index > MAXUNIONENVIVARIABLES)
		return(NULL);
	
	if (pUnionEnvi[index] == NULL)
		return(NULL);
		
	return(pUnionEnvi[index]->pVariableValue);
}
	
char *UnionGetEnviVarNameByIndex(int index)
{
	if (index >= UnionEnviVarNum)
		return(NULL);
		
	if (index > MAXUNIONENVIVARIABLES)
		return(NULL);
	
	if (pUnionEnvi[index] == NULL)
		return(NULL);
		
	return(pUnionEnvi[index]->pVariableName);
}
	
char *UnionGetEnviVarByName(char *varname)
{
	int i;
	int j;
	char buf1[128],buf2[128];
	
	if (strlen(varname) >= 128)
		return(NULL);
	
	for (i=0;ipVariableName == NULL)
			continue;
	
		if (strlen(varname) != strlen(pUnionEnvi[i]->pVariableName))
			continue;
		
		for (j = 0;jpVariableName);j++)
			buf2[j] = toupper(pUnionEnvi[i]->pVariableName[j]);
		buf2[j] = 0;
			
		if (strcmp(buf1,buf2) == 0)
			return(pUnionEnvi[i]->pVariableValue);
	}
	
	return(NULL);
}
		
		
PUnionEnviVariable ReadUnionEnviVarFromStr(char *str)
{
	int 	i;
	int	j;
	char	varname		[512];
	char	varvalue	[512];
	PUnionEnviVariable pvar;
	int	len;
	
	if (str == NULL)
		return(NULL);
		
	len = strlen(str);
	
	for (i=0;ipVariableName = (char *)malloc(strlen(varname)+1)) == NULL)
	{
		free(pvar);
		return(NULL);
	}
	
	if ((pvar->pVariableValue = (char *)malloc(strlen(varvalue)+1)) == NULL)
	{
		free(pvar->pVariableName);
		free(pvar);
		return(NULL);
	}
	
	strcpy(pvar->pVariableName,varname);
	strcpy(pvar->pVariableValue,varvalue);
	
	return(pvar);
}

int UnionReadOneFileLine(FILE *fp,char *buf)
{
	char *p;
	char c;
	int  num;
	
	p = buf;
	num = 0;
	while (!feof(fp))
	{
		fscanf(fp,"%c",&c);
		if (c == '\n')
		{
			*p = 0;
			return(num);
		}
		*p = c;
		p++;
		num++;
	}
	
	*p = 0;
	return(num);
}

int UnionInitEnvi(char *filename)
{
	int 	i;
	char	buf[512];
	FILE	*fp;
	
	for (i=0;ipVariableName)
		{
			if (free(pUnionEnvi[i]->pVariableName) != 0)
				;
		}
		if (pUnionEnvi[i]->pVariableValue)
		{
			if (free(pUnionEnvi[i]->pVariableValue) != 0)
				;
		}
		if (free(pUnionEnvi[i]) != 0)
				;
	}
	return(0);
}