Gets environment of a process.
Standard C library (libc.a)
#include <procinfo.h>
#include <sys/types.h>
int getevars (processBuffer, bufferLen, argsBuffer, argsLen)
struct procsinfo *processBuffer
or struct procentry64 *processBuffer;
int bufferLen;
char *argsBuffer;
int argsLen;
The getevars subroutine returns the environment that was passed to a command when it was started. Only one process can be examined per call to getevars.
The getevars subroutine uses the pi_pid field of processBuffer to determine which process to look for. bufferLen should be set to size of struct procsinfo or struct procentry64. Parameters are returned in argsBuffer, which should be allocated by the caller. The size of this array must be given in argsLen.
On return, argsBuffer consists of a succession of strings, each terminated with a null character (ascii `\0'). Hence, two consecutive NULLs indicate the end of the list.
If successful, the getevars subroutine returns zero. Otherwise, a value of -1 is returned and the errno global variable is set to indicate the error.
The getevars subroutine does not succeed if the following are true:
Item | Description |
---|---|
ESRCH | The specified process does not exist. |
EFAULT | The copy operation to the buffer was not successful or the processBuffer or argsBuffer parameters are invalid. |
EINVAL | The bufferLen parameter does not contain the size of a single procsinfo or procentry64 structure. |
ENOMEM | There is no memory available in the address space. |