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;
#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 | 주소 공간에 사용 가능한 메모리가 없습니다. |