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;i pVariableName == NULL) continue; if (strlen(varname) != strlen(pUnionEnvi[i]->pVariableName)) continue; for (j = 0;j pVariableName);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;i pVariableName = (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;i pVariableName) { if (free(pUnionEnvi[i]->pVariableName) != 0) ; } if (pUnionEnvi[i]->pVariableValue) { if (free(pUnionEnvi[i]->pVariableValue) != 0) ; } if (free(pUnionEnvi[i]) != 0) ; } return(0); }