home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
171.lha
/
SupLib
/
envirome.c
< prev
next >
Wrap
C/C++ Source or Header
|
1988-04-28
|
1KB
|
66 lines
/*
* ENVIROMENT.C
*
* str = GetDEnv(name)
* bool= SetDEnv(name, str) (0=failure, 1=success)
*
* If the enviroment variable 'name' exists, malloc and return a copy
* of it. The user program must free() it (or allow the standard C
* exit routine to free() it).
*/
extern void *AllocMem();
extern void *malloc();
char *
GetDEnv(name)
char *name;
{
short nlen = strlen(name) + 5;
char *ptr = AllocMem(nlen, MEMF_PUBLIC);
char *res = NULL;
long fh;
long len;
if (ptr) {
strcpy(ptr, "ENV:");
strcat(ptr, name);
if (fh = Open(ptr, 1005)) {
len = (Seek(fh, 0L, 1), Seek(fh, 0L, 0));
if (len >= 0 && (res = malloc(len+1))) {
Seek(fh, 0L, -1);
if (Read(fh, res, len) != len)
len = 0;
res[len] = 0;
}
Close(fh);
}
FreeMem(ptr, nlen);
}
return(res);
}
SetDEnv(name, str)
char *name, *str;
{
short nlen = strlen(name) + 5;
short slen = strlen(str);
short res = 0;
char *ptr = AllocMem(nlen, MEMF_PUBLIC);
long fh;
if (ptr) {
strcpy(ptr, "ENV:");
strcat(ptr, name);
if (fh = Open(ptr, 1006)) {
if (Write(fh, str, slen) == slen)
res = 1;
Close(fh);
}
FreeMem(ptr, nlen);
}
return(res);
}