getevars 서브루틴

용도

프로세스의 환경을 가져옵니다.

라이브러리

표준 C 라이브러리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;

설명

Getevars 서브루틴은 명령이 시작될 때 명령에 전달된 환경을 반환합니다. Getevars 호출당 하나의 프로세스만 검사할 수 있습니다.

getevars 서브루틴은 processBuffer pi_pid 필드를 사용하여 찾을 프로세스를 결정합니다. bufferLen 구조체 procsinfo 또는 구조체 procentry64 크기로 설정해야 합니다. 매개변수는 호출자가 할당해야 하는 argsBuffer로 반환됩니다. 이 배열의 크기는 argsLen 지정해야 합니다.

반환 시 argsBuffer 일련의 문자열로 구성되며, 각 문자열은 널 문자(ascii `\0')로 끝납니다. 따라서 두 번 연속NULL는 목록의 끝을 나타냅니다.

참고: 인수는 프로세스에 의해 비동기적으로 변경될 수 있지만 결과는 일관성이 보장되지 않습니다.

매개변수

processBuffer
찾고자 하는 프로세스의 pid가 pi_pid 필드에 포함되어야 하는 procsinfo 또는 procentry64 구조의 주소를 지정합니다.
bufferLen
단일 procsinfo 또는 procentry64 구조의 크기를 지정합니다.
argsBuffer
필요한 매개변수를 나타내는 일련의 문자열로 채울 문자 배열의 주소를 지정합니다. 추가NULL문자는 목록의 끝을 표시합니다. 이 배열은 호출자가 할당해야 합니다.
argsLen
argsBuffer 배열의 크기를 지정합니다. argsLen 문자 이상은 반환되지 않습니다.

리턴 값

성공하면 getevars 서브루틴은 0을 반환합니다. 그렇지 않으면 -1 값이 반환되고 errno 전역 변수가 오류를 나타내도록 설정됩니다.

오류 코드

다음과 같은 경우 getevars 서브루틴은 성공하지 못합니다:

항목 설명
ESRCH 지정한 프로세스가 존재하지 않습니다.
기본값 버퍼에 대한 복사 작업이 성공하지 못했거나 processBuffer 또는 argsBuffer 매개 변수가 유효하지 않습니다.
EINVAL bufferLen 매개변수에는 단일 procsinfo 또는 procentry64 구조의 크기가 포함되어 있지 않습니다.
ENOMEM 주소 공간에 사용 가능한 메모리가 없습니다.